From 61babd9d7a5bd835ed7c679b6a584f1d59fb29fa Mon Sep 17 00:00:00 2001 From: Andrew Welch Date: Tue, 30 Jan 2024 22:28:56 -0500 Subject: [PATCH] chore: ECS code cleanup --- .../Expression/EmptyCoalesceExpression.php | 4 +- src/Seomatic.php | 52 +- src/base/Container.php | 4 +- src/base/ContainerInterface.php | 1 - src/base/FluentModel.php | 3 +- src/base/FrontendTemplate.php | 2 +- src/base/FrontendTemplateInterface.php | 1 - src/base/GqlSeoElementInterface.php | 6 - src/base/InheritableSettingsModel.php | 1 - src/base/MetaItem.php | 6 +- src/base/MetaItemInterface.php | 1 - src/base/MetaService.php | 5 +- src/base/NonceContainer.php | 8 +- src/base/NonceItem.php | 10 +- src/base/NonceItemInterface.php | 1 - src/base/SeoElementInterface.php | 4 +- src/base/SitemapInterface.php | 1 - src/base/VarsModel.php | 4 +- src/config.php | 4 +- src/controllers/ContentSeoController.php | 3 +- src/controllers/FileController.php | 14 +- .../FrontendTemplateController.php | 7 +- src/controllers/MetaContainerController.php | 11 +- src/controllers/SettingsController.php | 10 +- src/controllers/SitemapController.php | 8 +- src/debug/panels/SeomaticPanel.php | 5 +- src/debug/views/seomatic/detail.php | 14 +- src/debug/views/seomatic/render-tag.php | 4 +- src/debug/views/seomatic/rendered-tags.php | 4 +- src/debug/views/seomatic/tag-table.php | 4 +- src/events/IncludeContainerEvent.php | 2 +- src/fields/SeoSettings.php | 11 +- src/fields/Seomatic_Meta.php | 2 +- .../arguments/FrontendContainerArguments.php | 7 +- src/gql/arguments/SeomaticArguments.php | 12 +- src/gql/arguments/SitemapArguments.php | 11 +- src/gql/arguments/SitemapIndexArguments.php | 5 +- src/gql/interfaces/SeomaticInterface.php | 31 +- src/gql/queries/SeomaticQuery.php | 6 +- .../resolvers/FrontendContainerResolver.php | 7 +- src/gql/resolvers/SeomaticResolver.php | 13 +- src/gql/resolvers/SitemapResolver.php | 38 +- src/gql/types/FileContentsType.php | 2 +- src/gql/types/SeomaticEnvironmentType.php | 13 +- .../types/SeomaticFrontendTemplateType.php | 11 +- src/gql/types/SeomaticType.php | 4 +- .../types/generators/SeomaticGenerator.php | 14 +- src/helpers/Config.php | 4 +- src/helpers/Container.php | 5 +- src/helpers/DynamicMeta.php | 4 +- src/helpers/Environment.php | 6 +- src/helpers/Field.php | 37 +- src/helpers/Gql.php | 1 + src/helpers/ImageTransform.php | 15 +- src/helpers/JsonLd.php | 4 +- src/helpers/Localization.php | 2 +- src/helpers/MetaValue.php | 3 +- src/helpers/Migration.php | 115 ++- src/helpers/PluginTemplate.php | 9 +- src/helpers/Schema.php | 8 +- src/helpers/SiteHelper.php | 4 +- src/helpers/Sitemap.php | 4 +- src/helpers/Text.php | 34 +- .../campaign/behaviors/CampaignBehavior.php | 1 - src/integrations/feedme/SeoSettings.php | 11 +- src/jobs/GenerateSitemap.php | 9 +- src/listeners/GetCraftQLSchema.php | 20 +- src/migrations/Install.php | 48 +- src/migrations/m180314_002755_field_type.php | 7 +- .../m180314_002756_base_install.php | 1 - ...180502_202319_remove_field_metabundles.php | 1 - .../m180711_024947_commerce_products.php | 4 +- .../m190518_030221_calendar_events.php | 4 +- src/migrations/m200419_203444_add_type_id.php | 1 - .../m210817_230853_announcement_v3_4.php | 4 +- ...4311_announcement_google_ua_deprecated.php | 4 +- src/models/MetaBundle.php | 16 +- src/models/MetaBundleSettings.php | 7 +- src/models/MetaJsonLd.php | 28 +- src/models/MetaJsonLdContainer.php | 4 +- src/models/MetaLink.php | 2 +- src/models/MetaLinkContainer.php | 12 +- src/models/MetaScriptContainer.php | 2 +- src/models/MetaSiteVars.php | 6 +- src/models/MetaSitemapVars.php | 18 +- src/models/MetaTag.php | 2 +- src/models/MetaTagContainer.php | 12 +- src/models/MetaTitle.php | 18 +- src/models/MetaTitleContainer.php | 12 +- src/models/Settings.php | 6 +- src/models/SitemapCustomTemplate.php | 24 +- src/models/SitemapIndexTemplate.php | 18 +- src/models/SitemapTemplate.php | 1 - src/models/jsonld/AMRadioChannel.php | 264 +++--- src/models/jsonld/APIReference.php | 714 +++++++-------- src/models/jsonld/Abdomen.php | 306 +++---- src/models/jsonld/AboutPage.php | 692 +++++++-------- src/models/jsonld/AcceptAction.php | 288 +++--- src/models/jsonld/Accommodation.php | 434 ++++----- src/models/jsonld/AccountingService.php | 624 ++++++------- src/models/jsonld/AchieveAction.php | 284 +++--- src/models/jsonld/Action.php | 282 +++--- .../jsonld/ActionAccessSpecification.php | 264 +++--- src/models/jsonld/ActionStatusType.php | 244 +++--- src/models/jsonld/ActivateAction.php | 286 +++--- src/models/jsonld/ActivationFee.php | 244 +++--- src/models/jsonld/ActiveActionStatus.php | 246 +++--- src/models/jsonld/ActiveNotRecruiting.php | 246 +++--- src/models/jsonld/AddAction.php | 294 +++---- src/models/jsonld/AdministrativeArea.php | 416 ++++----- src/models/jsonld/AdultEntertainment.php | 620 ++++++------- .../jsonld/AdultOrientedEnumeration.php | 242 ++--- .../jsonld/AdvertiserContentArticle.php | 684 +++++++-------- src/models/jsonld/AerobicActivity.php | 244 +++--- src/models/jsonld/AggregateOffer.php | 424 ++++----- src/models/jsonld/AggregateRating.php | 274 +++--- src/models/jsonld/AgreeAction.php | 288 +++--- src/models/jsonld/Airline.php | 474 +++++----- src/models/jsonld/Airport.php | 430 ++++----- src/models/jsonld/AlbumRelease.php | 244 +++--- src/models/jsonld/AlcoholConsideration.php | 244 +++--- src/models/jsonld/AlignmentObject.php | 256 +++--- .../jsonld/AllWheelDriveConfiguration.php | 278 +++--- src/models/jsonld/AllergiesHealthAspect.php | 244 +++--- src/models/jsonld/AllocateAction.php | 286 +++--- src/models/jsonld/AmpStory.php | 724 +++++++-------- src/models/jsonld/AmusementPark.php | 620 ++++++------- src/models/jsonld/AnaerobicActivity.php | 244 +++--- src/models/jsonld/AnalysisNewsArticle.php | 706 +++++++-------- src/models/jsonld/AnatomicalStructure.php | 300 +++---- src/models/jsonld/AnatomicalSystem.php | 288 +++--- src/models/jsonld/AndroidPlatform.php | 244 +++--- src/models/jsonld/Anesthesia.php | 248 +++--- src/models/jsonld/AnimalShelter.php | 618 ++++++------- src/models/jsonld/Answer.php | 668 +++++++------- src/models/jsonld/Apartment.php | 440 +++++----- src/models/jsonld/ApartmentComplex.php | 438 +++++----- src/models/jsonld/Appearance.php | 306 +++---- src/models/jsonld/AppendAction.php | 302 +++---- src/models/jsonld/ApplyAction.php | 286 +++--- src/models/jsonld/ApprovedIndication.php | 270 +++--- src/models/jsonld/Aquarium.php | 422 ++++----- src/models/jsonld/ArchiveComponent.php | 658 +++++++------- src/models/jsonld/ArchiveOrganization.php | 622 ++++++------- src/models/jsonld/ArriveAction.php | 294 +++---- src/models/jsonld/ArtGallery.php | 620 ++++++------- src/models/jsonld/Artery.php | 312 +++---- src/models/jsonld/Article.php | 682 +++++++-------- src/models/jsonld/AskAction.php | 308 +++---- src/models/jsonld/AskPublicNewsArticle.php | 706 +++++++-------- src/models/jsonld/AssessAction.php | 284 +++--- src/models/jsonld/AssignAction.php | 288 +++--- src/models/jsonld/Atlas.php | 650 +++++++------- src/models/jsonld/Attorney.php | 620 ++++++------- src/models/jsonld/Audience.php | 244 +++--- src/models/jsonld/AudioObject.php | 736 ++++++++-------- src/models/jsonld/AudioObjectSnapshot.php | 738 ++++++++-------- src/models/jsonld/Audiobook.php | 768 ++++++++-------- src/models/jsonld/AudiobookFormat.php | 244 +++--- src/models/jsonld/AuthoritativeLegalValue.php | 244 +++--- src/models/jsonld/AuthorizeAction.php | 292 +++---- src/models/jsonld/AutoBodyShop.php | 620 ++++++------- src/models/jsonld/AutoDealer.php | 620 ++++++------- src/models/jsonld/AutoPartsStore.php | 622 ++++++------- src/models/jsonld/AutoRental.php | 620 ++++++------- src/models/jsonld/AutoRepair.php | 620 ++++++------- src/models/jsonld/AutoWash.php | 620 ++++++------- src/models/jsonld/AutomatedTeller.php | 624 ++++++------- src/models/jsonld/AutomotiveBusiness.php | 618 ++++++------- src/models/jsonld/Ayurvedic.php | 246 +++--- src/models/jsonld/BackOrder.php | 244 +++--- src/models/jsonld/BackgroundNewsArticle.php | 706 +++++++-------- src/models/jsonld/Bacteria.php | 246 +++--- src/models/jsonld/Bakery.php | 640 +++++++------- src/models/jsonld/Balance.php | 244 +++--- src/models/jsonld/BankAccount.php | 360 ++++---- src/models/jsonld/BankOrCreditUnion.php | 624 ++++++------- src/models/jsonld/BarOrPub.php | 640 +++++++------- src/models/jsonld/Barcode.php | 746 ++++++++-------- src/models/jsonld/BasicIncome.php | 244 +++--- src/models/jsonld/Beach.php | 422 ++++----- src/models/jsonld/BeautySalon.php | 620 ++++++------- src/models/jsonld/BedAndBreakfast.php | 648 +++++++------- src/models/jsonld/BedDetails.php | 244 +++--- src/models/jsonld/BedType.php | 276 +++--- src/models/jsonld/BefriendAction.php | 286 +++--- src/models/jsonld/BenefitsHealthAspect.php | 244 +++--- src/models/jsonld/BikeStore.php | 620 ++++++------- src/models/jsonld/BioChemEntity.php | 286 +++--- src/models/jsonld/Blog.php | 662 +++++++------- src/models/jsonld/BlogPosting.php | 690 +++++++-------- src/models/jsonld/BloodTest.php | 290 +++--- src/models/jsonld/BoardingPolicyType.php | 242 ++--- src/models/jsonld/BoatReservation.php | 290 +++--- src/models/jsonld/BoatTerminal.php | 422 ++++----- src/models/jsonld/BoatTrip.php | 274 +++--- src/models/jsonld/BodyMeasurementArm.php | 246 +++--- src/models/jsonld/BodyMeasurementBust.php | 246 +++--- src/models/jsonld/BodyMeasurementChest.php | 246 +++--- src/models/jsonld/BodyMeasurementFoot.php | 246 +++--- src/models/jsonld/BodyMeasurementHand.php | 246 +++--- src/models/jsonld/BodyMeasurementHead.php | 246 +++--- src/models/jsonld/BodyMeasurementHeight.php | 246 +++--- src/models/jsonld/BodyMeasurementHips.php | 246 +++--- .../jsonld/BodyMeasurementInsideLeg.php | 246 +++--- src/models/jsonld/BodyMeasurementNeck.php | 246 +++--- .../jsonld/BodyMeasurementTypeEnumeration.php | 244 +++--- .../jsonld/BodyMeasurementUnderbust.php | 246 +++--- src/models/jsonld/BodyMeasurementWaist.php | 246 +++--- src/models/jsonld/BodyMeasurementWeight.php | 246 +++--- src/models/jsonld/BodyOfWater.php | 418 ++++----- src/models/jsonld/Bone.php | 302 +++---- src/models/jsonld/Book.php | 674 +++++++------- src/models/jsonld/BookFormatType.php | 242 ++--- src/models/jsonld/BookSeries.php | 668 +++++++------- src/models/jsonld/BookStore.php | 620 ++++++------- src/models/jsonld/BookmarkAction.php | 286 +++--- src/models/jsonld/Boolean.php | 188 ++-- src/models/jsonld/BorrowAction.php | 298 +++---- src/models/jsonld/BowlingAlley.php | 620 ++++++------- src/models/jsonld/BrainStructure.php | 302 +++---- src/models/jsonld/Brand.php | 252 +++--- src/models/jsonld/BreadcrumbList.php | 250 +++--- src/models/jsonld/Brewery.php | 640 +++++++------- src/models/jsonld/Bridge.php | 422 ++++----- src/models/jsonld/BroadcastChannel.php | 260 +++--- src/models/jsonld/BroadcastEvent.php | 430 ++++----- .../BroadcastFrequencySpecification.php | 248 +++--- src/models/jsonld/BroadcastRelease.php | 244 +++--- src/models/jsonld/BroadcastService.php | 378 ++++---- src/models/jsonld/BrokerageAccount.php | 354 ++++---- src/models/jsonld/BuddhistTemple.php | 424 ++++----- src/models/jsonld/BusOrCoach.php | 580 ++++++------ src/models/jsonld/BusReservation.php | 290 +++--- src/models/jsonld/BusStation.php | 422 ++++----- src/models/jsonld/BusStop.php | 422 ++++----- src/models/jsonld/BusTrip.php | 282 +++--- src/models/jsonld/BusinessAudience.php | 258 +++--- src/models/jsonld/BusinessEntityType.php | 242 ++--- src/models/jsonld/BusinessEvent.php | 400 ++++----- src/models/jsonld/BusinessFunction.php | 242 ++--- src/models/jsonld/BusinessSupport.php | 244 +++--- src/models/jsonld/BuyAction.php | 310 +++---- src/models/jsonld/CDCPMDRecord.php | 306 +++---- src/models/jsonld/CDFormat.php | 244 +++--- src/models/jsonld/CT.php | 246 +++--- src/models/jsonld/CableOrSatelliteService.php | 334 +++---- src/models/jsonld/CafeOrCoffeeShop.php | 640 +++++++------- src/models/jsonld/Campground.php | 650 +++++++------- src/models/jsonld/CampingPitch.php | 436 ++++----- src/models/jsonld/Canal.php | 420 ++++----- src/models/jsonld/CancelAction.php | 292 +++---- src/models/jsonld/Car.php | 580 ++++++------ src/models/jsonld/CarUsageType.php | 242 ++--- src/models/jsonld/Cardiovascular.php | 248 +++--- src/models/jsonld/CardiovascularExam.php | 306 +++---- src/models/jsonld/CaseSeries.php | 246 +++--- src/models/jsonld/Casino.php | 620 ++++++------- src/models/jsonld/CassetteFormat.php | 244 +++--- src/models/jsonld/CategoryCode.php | 254 +++--- src/models/jsonld/CategoryCodeSet.php | 660 +++++++------- src/models/jsonld/CatholicChurch.php | 426 ++++----- src/models/jsonld/CausesHealthAspect.php | 244 +++--- src/models/jsonld/Cemetery.php | 422 ++++----- src/models/jsonld/Chapter.php | 662 +++++++------- .../CharitableIncorporatedOrganization.php | 246 +++--- src/models/jsonld/CheckAction.php | 286 +++--- src/models/jsonld/CheckInAction.php | 304 +++---- src/models/jsonld/CheckOutAction.php | 304 +++---- src/models/jsonld/CheckoutPage.php | 692 +++++++-------- src/models/jsonld/ChemicalSubstance.php | 300 +++---- src/models/jsonld/ChildCare.php | 618 ++++++------- src/models/jsonld/ChildrensEvent.php | 400 ++++----- src/models/jsonld/Chiropractic.php | 246 +++--- src/models/jsonld/ChooseAction.php | 294 +++---- src/models/jsonld/Church.php | 424 ++++----- src/models/jsonld/City.php | 418 ++++----- src/models/jsonld/CityHall.php | 424 ++++----- src/models/jsonld/CivicStructure.php | 420 ++++----- src/models/jsonld/Claim.php | 662 +++++++------- src/models/jsonld/ClaimReview.php | 692 +++++++-------- src/models/jsonld/CleaningFee.php | 244 +++--- src/models/jsonld/Clinician.php | 246 +++--- src/models/jsonld/Clip.php | 694 +++++++-------- src/models/jsonld/ClothingStore.php | 620 ++++++------- src/models/jsonld/CoOp.php | 244 +++--- src/models/jsonld/Code.php | 650 +++++++------- src/models/jsonld/CohortStudy.php | 246 +++--- src/models/jsonld/Collection.php | 654 +++++++------- src/models/jsonld/CollectionPage.php | 692 +++++++-------- src/models/jsonld/CollegeOrUniversity.php | 604 ++++++------- src/models/jsonld/ComedyClub.php | 620 ++++++------- src/models/jsonld/ComedyEvent.php | 400 ++++----- src/models/jsonld/ComicCoverArt.php | 708 +++++++-------- src/models/jsonld/ComicIssue.php | 692 +++++++-------- src/models/jsonld/ComicSeries.php | 670 +++++++------- src/models/jsonld/ComicStory.php | 670 +++++++------- src/models/jsonld/Comment.php | 662 +++++++------- src/models/jsonld/CommentAction.php | 308 +++---- src/models/jsonld/CommentPermission.php | 244 +++--- src/models/jsonld/CommunicateAction.php | 302 +++---- src/models/jsonld/CommunityHealth.php | 634 +++++++------- src/models/jsonld/CompilationAlbum.php | 244 +++--- src/models/jsonld/CompleteDataFeed.php | 690 +++++++-------- src/models/jsonld/Completed.php | 246 +++--- src/models/jsonld/CompletedActionStatus.php | 246 +++--- .../jsonld/CompoundPriceSpecification.php | 284 +++--- src/models/jsonld/ComputerLanguage.php | 236 ++--- src/models/jsonld/ComputerStore.php | 620 ++++++------- src/models/jsonld/ConfirmAction.php | 310 +++---- src/models/jsonld/Consortium.php | 466 +++++----- src/models/jsonld/ConsumeAction.php | 292 +++---- src/models/jsonld/ContactPage.php | 692 +++++++-------- src/models/jsonld/ContactPoint.php | 278 +++--- src/models/jsonld/ContactPointOption.php | 242 ++--- .../jsonld/ContagiousnessHealthAspect.php | 244 +++--- src/models/jsonld/Continent.php | 418 ++++----- src/models/jsonld/ControlAction.php | 284 +++--- src/models/jsonld/ConvenienceStore.php | 620 ++++++------- src/models/jsonld/Conversation.php | 650 +++++++------- src/models/jsonld/CookAction.php | 298 +++---- src/models/jsonld/Corporation.php | 470 +++++----- src/models/jsonld/CorrectionComment.php | 664 +++++++------- src/models/jsonld/Country.php | 418 ++++----- src/models/jsonld/Course.php | 680 +++++++------- src/models/jsonld/CourseInstance.php | 412 ++++----- src/models/jsonld/Courthouse.php | 424 ++++----- src/models/jsonld/CoverArt.php | 704 +++++++-------- src/models/jsonld/CovidTestingFacility.php | 640 +++++++------- src/models/jsonld/CreateAction.php | 284 +++--- src/models/jsonld/CreativeWork.php | 648 +++++++------- src/models/jsonld/CreativeWorkSeason.php | 694 +++++++-------- src/models/jsonld/CreativeWorkSeries.php | 666 +++++++------- src/models/jsonld/CreditCard.php | 412 ++++----- src/models/jsonld/Crematorium.php | 422 ++++----- src/models/jsonld/CriticReview.php | 688 +++++++-------- src/models/jsonld/CrossSectional.php | 246 +++--- src/models/jsonld/CssSelectorType.php | 190 ++-- .../jsonld/CurrencyConversionService.php | 348 ++++---- src/models/jsonld/DDxElement.php | 278 +++--- src/models/jsonld/DJMixAlbum.php | 244 +++--- src/models/jsonld/DVDFormat.php | 244 +++--- src/models/jsonld/DamagedCondition.php | 244 +++--- src/models/jsonld/DanceEvent.php | 400 ++++----- src/models/jsonld/DanceGroup.php | 468 +++++----- .../jsonld/DangerousGoodConsideration.php | 244 +++--- src/models/jsonld/DataCatalog.php | 658 +++++++------- src/models/jsonld/DataDownload.php | 728 +++++++-------- src/models/jsonld/DataFeed.php | 688 +++++++-------- src/models/jsonld/DataFeedItem.php | 252 +++--- src/models/jsonld/DataType.php | 188 ++-- src/models/jsonld/Dataset.php | 682 +++++++-------- src/models/jsonld/Date.php | 188 ++-- src/models/jsonld/DateTime.php | 188 ++-- src/models/jsonld/DatedMoneySpecification.php | 254 +++--- src/models/jsonld/DayOfWeek.php | 242 ++--- src/models/jsonld/DaySpa.php | 620 ++++++------- src/models/jsonld/DeactivateAction.php | 286 +++--- src/models/jsonld/DecontextualizedContent.php | 244 +++--- src/models/jsonld/DefenceEstablishment.php | 424 ++++----- src/models/jsonld/DefinedRegion.php | 258 +++--- src/models/jsonld/DefinedTerm.php | 244 +++--- src/models/jsonld/DefinedTermSet.php | 654 +++++++------- src/models/jsonld/DefinitiveLegalValue.php | 244 +++--- src/models/jsonld/DeleteAction.php | 294 +++---- .../jsonld/DeliveryChargeSpecification.php | 292 +++---- src/models/jsonld/DeliveryEvent.php | 416 ++++----- src/models/jsonld/DeliveryMethod.php | 242 ++--- src/models/jsonld/DeliveryTimeSettings.php | 254 +++--- src/models/jsonld/Demand.php | 372 ++++---- src/models/jsonld/DemoAlbum.php | 244 +++--- src/models/jsonld/DemoGameAvailability.php | 244 +++--- src/models/jsonld/Dentist.php | 634 +++++++------- src/models/jsonld/Dentistry.php | 248 +++--- src/models/jsonld/DepartAction.php | 294 +++---- src/models/jsonld/DepartmentStore.php | 620 ++++++------- src/models/jsonld/DepositAccount.php | 368 ++++---- src/models/jsonld/Dermatologic.php | 248 +++--- src/models/jsonld/Dermatology.php | 634 +++++++------- src/models/jsonld/DesktopWebPlatform.php | 244 +++--- src/models/jsonld/DiabeticDiet.php | 244 +++--- src/models/jsonld/Diagnostic.php | 246 +++--- src/models/jsonld/DiagnosticLab.php | 484 +++++----- src/models/jsonld/DiagnosticProcedure.php | 294 +++---- src/models/jsonld/Diet.php | 702 +++++++-------- src/models/jsonld/DietNutrition.php | 634 +++++++------- src/models/jsonld/DietarySupplement.php | 490 +++++------ src/models/jsonld/DigitalAudioTapeFormat.php | 244 +++--- src/models/jsonld/DigitalDocument.php | 654 +++++++------- .../jsonld/DigitalDocumentPermission.php | 244 +++--- .../jsonld/DigitalDocumentPermissionType.php | 242 ++--- src/models/jsonld/DigitalFormat.php | 244 +++--- .../jsonld/DigitalPlatformEnumeration.php | 242 ++--- src/models/jsonld/DisabilitySupport.php | 244 +++--- src/models/jsonld/DisagreeAction.php | 288 +++--- src/models/jsonld/Discontinued.php | 244 +++--- src/models/jsonld/DiscoverAction.php | 286 +++--- src/models/jsonld/DiscussionForumPosting.php | 690 +++++++-------- src/models/jsonld/DislikeAction.php | 288 +++--- src/models/jsonld/Distance.php | 238 ++--- src/models/jsonld/DistanceFee.php | 244 +++--- src/models/jsonld/Distillery.php | 640 +++++++------- src/models/jsonld/DonateAction.php | 302 +++---- src/models/jsonld/DoseSchedule.php | 286 +++--- src/models/jsonld/DoubleBlindedTrial.php | 246 +++--- src/models/jsonld/DownloadAction.php | 294 +++---- src/models/jsonld/Downpayment.php | 244 +++--- src/models/jsonld/DrawAction.php | 286 +++--- src/models/jsonld/Drawing.php | 650 +++++++------- src/models/jsonld/DrinkAction.php | 294 +++---- .../jsonld/DriveWheelConfigurationValue.php | 276 +++--- .../jsonld/DrivingSchoolVehicleUsage.php | 244 +++--- src/models/jsonld/Drug.php | 570 ++++++------ src/models/jsonld/DrugClass.php | 272 +++--- src/models/jsonld/DrugCost.php | 292 +++---- src/models/jsonld/DrugCostCategory.php | 244 +++--- src/models/jsonld/DrugLegalStatus.php | 274 +++--- src/models/jsonld/DrugPregnancyCategory.php | 244 +++--- src/models/jsonld/DrugPrescriptionStatus.php | 244 +++--- src/models/jsonld/DrugStrength.php | 290 +++--- src/models/jsonld/DryCleaningOrLaundry.php | 618 ++++++------- src/models/jsonld/Duration.php | 238 ++--- src/models/jsonld/EBook.php | 244 +++--- src/models/jsonld/EPRelease.php | 244 +++--- .../jsonld/EUEnergyEfficiencyCategoryA.php | 246 +++--- .../EUEnergyEfficiencyCategoryA1Plus.php | 246 +++--- .../EUEnergyEfficiencyCategoryA2Plus.php | 246 +++--- .../EUEnergyEfficiencyCategoryA3Plus.php | 246 +++--- .../jsonld/EUEnergyEfficiencyCategoryB.php | 246 +++--- .../jsonld/EUEnergyEfficiencyCategoryC.php | 246 +++--- .../jsonld/EUEnergyEfficiencyCategoryD.php | 246 +++--- .../jsonld/EUEnergyEfficiencyCategoryE.php | 246 +++--- .../jsonld/EUEnergyEfficiencyCategoryF.php | 246 +++--- .../jsonld/EUEnergyEfficiencyCategoryG.php | 246 +++--- .../jsonld/EUEnergyEfficiencyEnumeration.php | 244 +++--- src/models/jsonld/Ear.php | 306 +++---- src/models/jsonld/EatAction.php | 294 +++---- src/models/jsonld/EditedOrCroppedContent.php | 244 +++--- src/models/jsonld/EducationEvent.php | 412 ++++----- src/models/jsonld/EducationalAudience.php | 250 +++--- .../EducationalOccupationalCredential.php | 670 +++++++------- .../jsonld/EducationalOccupationalProgram.php | 332 +++---- src/models/jsonld/EducationalOrganization.php | 602 ++++++------- .../jsonld/EffectivenessHealthAspect.php | 244 +++--- src/models/jsonld/Electrician.php | 620 ++++++------- src/models/jsonld/ElectronicsStore.php | 620 ++++++------- src/models/jsonld/ElementarySchool.php | 604 ++++++------- src/models/jsonld/EmailMessage.php | 688 +++++++-------- src/models/jsonld/Embassy.php | 424 ++++----- src/models/jsonld/Emergency.php | 634 +++++++------- src/models/jsonld/EmergencyService.php | 618 ++++++------- src/models/jsonld/EmployeeRole.php | 268 +++--- src/models/jsonld/EmployerAggregateRating.php | 276 +++--- src/models/jsonld/EmployerReview.php | 688 +++++++-------- src/models/jsonld/EmploymentAgency.php | 618 ++++++------- src/models/jsonld/Endocrine.php | 248 +++--- src/models/jsonld/EndorseAction.php | 292 +++---- src/models/jsonld/EndorsementRating.php | 262 +++--- src/models/jsonld/Energy.php | 238 ++--- .../jsonld/EnergyConsumptionDetails.php | 248 +++--- .../jsonld/EnergyEfficiencyEnumeration.php | 242 ++--- src/models/jsonld/EnergyStarCertified.php | 246 +++--- .../EnergyStarEnergyEfficiencyEnumeration.php | 244 +++--- src/models/jsonld/EngineSpecification.php | 258 +++--- src/models/jsonld/EnrollingByInvitation.php | 246 +++--- src/models/jsonld/EntertainmentBusiness.php | 618 ++++++------- src/models/jsonld/EntryPoint.php | 264 +++--- src/models/jsonld/Enumeration.php | 240 ++--- src/models/jsonld/Episode.php | 694 +++++++-------- src/models/jsonld/Event.php | 398 ++++----- .../jsonld/EventAttendanceModeEnumeration.php | 242 ++--- src/models/jsonld/EventCancelled.php | 246 +++--- src/models/jsonld/EventMovedOnline.php | 246 +++--- src/models/jsonld/EventPostponed.php | 246 +++--- src/models/jsonld/EventRescheduled.php | 246 +++--- src/models/jsonld/EventReservation.php | 290 +++--- src/models/jsonld/EventScheduled.php | 246 +++--- src/models/jsonld/EventSeries.php | 404 ++++----- src/models/jsonld/EventStatusType.php | 244 +++--- src/models/jsonld/EventVenue.php | 422 ++++----- src/models/jsonld/EvidenceLevelA.php | 246 +++--- src/models/jsonld/EvidenceLevelB.php | 246 +++--- src/models/jsonld/EvidenceLevelC.php | 246 +++--- .../jsonld/ExchangeRateSpecification.php | 250 +++--- src/models/jsonld/ExchangeRefund.php | 244 +++--- src/models/jsonld/ExerciseAction.php | 346 ++++---- src/models/jsonld/ExerciseGym.php | 620 ++++++------- src/models/jsonld/ExercisePlan.php | 732 ++++++++-------- src/models/jsonld/ExhibitionEvent.php | 400 ++++----- src/models/jsonld/Eye.php | 306 +++---- src/models/jsonld/FAQPage.php | 692 +++++++-------- src/models/jsonld/FDAcategoryA.php | 246 +++--- src/models/jsonld/FDAcategoryB.php | 246 +++--- src/models/jsonld/FDAcategoryC.php | 246 +++--- src/models/jsonld/FDAcategoryD.php | 246 +++--- src/models/jsonld/FDAcategoryX.php | 246 +++--- src/models/jsonld/FDAnotEvaluated.php | 246 +++--- src/models/jsonld/FMRadioChannel.php | 264 +++--- src/models/jsonld/FailedActionStatus.php | 246 +++--- src/models/jsonld/FastFoodRestaurant.php | 640 +++++++------- src/models/jsonld/Female.php | 244 +++--- src/models/jsonld/Festival.php | 400 ++++----- src/models/jsonld/FilmAction.php | 286 +++--- src/models/jsonld/FinancialProduct.php | 346 ++++---- src/models/jsonld/FinancialService.php | 622 ++++++------- src/models/jsonld/FindAction.php | 284 +++--- src/models/jsonld/FireStation.php | 622 ++++++------- src/models/jsonld/Flexibility.php | 244 +++--- src/models/jsonld/Flight.php | 326 +++---- src/models/jsonld/FlightReservation.php | 306 +++---- src/models/jsonld/FloorPlan.php | 284 +++--- src/models/jsonld/Florist.php | 620 ++++++------- src/models/jsonld/FollowAction.php | 290 +++--- src/models/jsonld/FoodEstablishment.php | 638 +++++++------- .../jsonld/FoodEstablishmentReservation.php | 302 +++---- src/models/jsonld/FoodEvent.php | 400 ++++----- src/models/jsonld/FoodService.php | 334 +++---- .../jsonld/FourWheelDriveConfiguration.php | 278 +++--- src/models/jsonld/FreeReturn.php | 244 +++--- src/models/jsonld/Friday.php | 244 +++--- .../jsonld/FrontWheelDriveConfiguration.php | 278 +++--- src/models/jsonld/FullGameAvailability.php | 244 +++--- src/models/jsonld/FullRefund.php | 244 +++--- src/models/jsonld/FundingAgency.php | 468 +++++----- src/models/jsonld/FundingScheme.php | 466 +++++----- src/models/jsonld/Fungus.php | 246 +++--- src/models/jsonld/FurnitureStore.php | 620 ++++++------- src/models/jsonld/Game.php | 670 +++++++------- .../jsonld/GameAvailabilityEnumeration.php | 242 ++--- src/models/jsonld/GamePlayMode.php | 242 ++--- src/models/jsonld/GameServer.php | 248 +++--- src/models/jsonld/GameServerStatus.php | 244 +++--- src/models/jsonld/GardenStore.php | 620 ++++++------- src/models/jsonld/GasStation.php | 620 ++++++------- src/models/jsonld/Gastroenterologic.php | 248 +++--- src/models/jsonld/GatedResidenceCommunity.php | 422 ++++----- src/models/jsonld/GenderType.php | 242 ++--- src/models/jsonld/Gene.php | 304 +++---- src/models/jsonld/GeneralContractor.php | 620 ++++++------- src/models/jsonld/GenericWebPlatform.php | 244 +++--- src/models/jsonld/Genetic.php | 248 +++--- src/models/jsonld/Genitourinary.php | 306 +++---- src/models/jsonld/GeoCircle.php | 280 +++--- src/models/jsonld/GeoCoordinates.php | 262 +++--- src/models/jsonld/GeoShape.php | 270 +++--- src/models/jsonld/GeospatialGeometry.php | 276 +++--- src/models/jsonld/Geriatric.php | 634 +++++++------- .../jsonld/GettingAccessHealthAspect.php | 244 +++--- src/models/jsonld/GiveAction.php | 298 +++---- src/models/jsonld/GlutenFreeDiet.php | 244 +++--- src/models/jsonld/GolfCourse.php | 620 ++++++------- src/models/jsonld/GovernmentBenefitsType.php | 242 ++--- src/models/jsonld/GovernmentBuilding.php | 422 ++++----- src/models/jsonld/GovernmentOffice.php | 618 ++++++------- src/models/jsonld/GovernmentOrganization.php | 466 +++++----- src/models/jsonld/GovernmentPermit.php | 266 +++--- src/models/jsonld/GovernmentService.php | 342 ++++---- src/models/jsonld/Grant.php | 248 +++--- src/models/jsonld/GraphicNovel.php | 244 +++--- src/models/jsonld/GroceryStore.php | 620 ++++++------- src/models/jsonld/GroupBoardingPolicy.php | 244 +++--- src/models/jsonld/Guide.php | 654 +++++++------- src/models/jsonld/Gynecologic.php | 634 +++++++------- src/models/jsonld/HVACBusiness.php | 620 ++++++------- src/models/jsonld/Hackathon.php | 400 ++++----- src/models/jsonld/HairSalon.php | 620 ++++++------- src/models/jsonld/HalalDiet.php | 244 +++--- src/models/jsonld/Hardcover.php | 244 +++--- src/models/jsonld/HardwareStore.php | 620 ++++++------- src/models/jsonld/Head.php | 306 +++---- src/models/jsonld/HealthAndBeautyBusiness.php | 618 ++++++------- src/models/jsonld/HealthAspectEnumeration.php | 242 ++--- src/models/jsonld/HealthCare.php | 244 +++--- src/models/jsonld/HealthClub.php | 622 ++++++------- src/models/jsonld/HealthInsurancePlan.php | 272 +++--- .../HealthPlanCostSharingSpecification.php | 256 +++--- src/models/jsonld/HealthPlanFormulary.php | 248 +++--- src/models/jsonld/HealthPlanNetwork.php | 248 +++--- src/models/jsonld/HealthTopicContent.php | 656 +++++++------- src/models/jsonld/HealthcareConsideration.php | 244 +++--- .../jsonld/HearingImpairedSupported.php | 244 +++--- src/models/jsonld/Hematologic.php | 248 +++--- src/models/jsonld/HighSchool.php | 604 ++++++------- src/models/jsonld/HinduDiet.php | 244 +++--- src/models/jsonld/HinduTemple.php | 424 ++++----- src/models/jsonld/HobbyShop.php | 620 ++++++------- .../jsonld/HomeAndConstructionBusiness.php | 618 ++++++------- src/models/jsonld/HomeGoodsStore.php | 620 ++++++------- src/models/jsonld/Homeopathic.php | 246 +++--- src/models/jsonld/Hospital.php | 644 +++++++------- src/models/jsonld/Hostel.php | 648 +++++++------- src/models/jsonld/Hotel.php | 648 +++++++------- src/models/jsonld/HotelRoom.php | 446 +++++----- src/models/jsonld/House.php | 436 ++++----- src/models/jsonld/HousePainter.php | 620 ++++++------- src/models/jsonld/HowItWorksHealthAspect.php | 244 +++--- src/models/jsonld/HowOrWhereHealthAspect.php | 244 +++--- src/models/jsonld/HowTo.php | 686 +++++++-------- src/models/jsonld/HowToDirection.php | 698 +++++++-------- src/models/jsonld/HowToItem.php | 258 +++--- src/models/jsonld/HowToSection.php | 684 +++++++-------- src/models/jsonld/HowToStep.php | 680 +++++++------- src/models/jsonld/HowToSupply.php | 264 +++--- src/models/jsonld/HowToTip.php | 666 +++++++------- src/models/jsonld/HowToTool.php | 260 +++--- src/models/jsonld/HyperToc.php | 654 +++++++------- src/models/jsonld/HyperTocEntry.php | 658 +++++++------- src/models/jsonld/IOSPlatform.php | 244 +++--- src/models/jsonld/IceCreamShop.php | 640 +++++++------- src/models/jsonld/IgnoreAction.php | 286 +++--- src/models/jsonld/ImageGallery.php | 696 +++++++-------- src/models/jsonld/ImageObject.php | 744 ++++++++-------- src/models/jsonld/ImageObjectSnapshot.php | 746 ++++++++-------- src/models/jsonld/ImagingTest.php | 294 +++---- src/models/jsonld/InForce.php | 246 +++--- src/models/jsonld/InStock.php | 244 +++--- src/models/jsonld/InStoreOnly.php | 244 +++--- src/models/jsonld/IndividualProduct.php | 426 ++++----- src/models/jsonld/Infectious.php | 248 +++--- src/models/jsonld/InfectiousAgentClass.php | 244 +++--- src/models/jsonld/InfectiousDisease.php | 346 ++++---- src/models/jsonld/InformAction.php | 308 +++---- src/models/jsonld/IngredientsHealthAspect.php | 244 +++--- src/models/jsonld/InsertAction.php | 300 +++---- src/models/jsonld/InstallAction.php | 294 +++---- src/models/jsonld/Installment.php | 244 +++--- src/models/jsonld/InsuranceAgency.php | 624 ++++++------- src/models/jsonld/Intangible.php | 234 ++--- src/models/jsonld/Integer.php | 190 ++-- src/models/jsonld/InteractAction.php | 284 +++--- src/models/jsonld/InteractionCounter.php | 262 +++--- src/models/jsonld/InternationalTrial.php | 246 +++--- src/models/jsonld/InternetCafe.php | 618 ++++++------- src/models/jsonld/InvestmentFund.php | 354 ++++---- src/models/jsonld/InvestmentOrDeposit.php | 352 ++++---- src/models/jsonld/InviteAction.php | 308 +++---- src/models/jsonld/Invoice.php | 300 +++---- src/models/jsonld/InvoicePrice.php | 244 +++--- src/models/jsonld/ItemAvailability.php | 242 ++--- src/models/jsonld/ItemList.php | 248 +++--- src/models/jsonld/ItemListOrderAscending.php | 244 +++--- src/models/jsonld/ItemListOrderDescending.php | 244 +++--- src/models/jsonld/ItemListOrderType.php | 242 ++--- src/models/jsonld/ItemListUnordered.php | 244 +++--- src/models/jsonld/ItemPage.php | 692 +++++++-------- src/models/jsonld/JewelryStore.php | 620 ++++++------- src/models/jsonld/JobPosting.php | 384 ++++---- src/models/jsonld/JoinAction.php | 290 +++--- src/models/jsonld/Joint.php | 314 +++---- src/models/jsonld/KosherDiet.php | 244 +++--- src/models/jsonld/LaboratoryScience.php | 248 +++--- src/models/jsonld/LakeBodyOfWater.php | 420 ++++----- src/models/jsonld/Landform.php | 416 ++++----- .../jsonld/LandmarksOrHistoricalBuildings.php | 416 ++++----- src/models/jsonld/Language.php | 236 ++--- src/models/jsonld/LaserDiscFormat.php | 244 +++--- src/models/jsonld/LearningResource.php | 654 +++++++------- src/models/jsonld/LeaveAction.php | 290 +++--- src/models/jsonld/LeftHandDriving.php | 278 +++--- src/models/jsonld/LegalForceStatus.php | 244 +++--- src/models/jsonld/LegalService.php | 618 ++++++------- src/models/jsonld/LegalValueLevel.php | 242 ++--- src/models/jsonld/Legislation.php | 702 +++++++-------- src/models/jsonld/LegislationObject.php | 782 ++++++++--------- src/models/jsonld/LegislativeBuilding.php | 424 ++++----- src/models/jsonld/LeisureTimeActivity.php | 244 +++--- src/models/jsonld/LendAction.php | 298 +++---- src/models/jsonld/Library.php | 618 ++++++------- src/models/jsonld/LibrarySystem.php | 466 +++++----- src/models/jsonld/LifestyleModification.php | 268 +++--- src/models/jsonld/Ligament.php | 302 +++---- src/models/jsonld/LikeAction.php | 288 +++--- src/models/jsonld/LimitedAvailability.php | 244 +++--- .../jsonld/LimitedByGuaranteeCharity.php | 246 +++--- src/models/jsonld/LinkRole.php | 262 +++--- src/models/jsonld/LiquorStore.php | 620 ++++++------- src/models/jsonld/ListItem.php | 252 +++--- src/models/jsonld/ListPrice.php | 244 +++--- src/models/jsonld/ListenAction.php | 294 +++---- src/models/jsonld/LiteraryEvent.php | 400 ++++----- src/models/jsonld/LiveAlbum.php | 244 +++--- src/models/jsonld/LiveBlogPosting.php | 704 +++++++-------- src/models/jsonld/LivingWithHealthAspect.php | 244 +++--- src/models/jsonld/LoanOrCredit.php | 384 ++++---- src/models/jsonld/LocalBusiness.php | 616 ++++++------- .../jsonld/LocationFeatureSpecification.php | 284 +++--- src/models/jsonld/LockerDelivery.php | 244 +++--- src/models/jsonld/Locksmith.php | 620 ++++++------- src/models/jsonld/LodgingBusiness.php | 646 +++++++------- src/models/jsonld/LodgingReservation.php | 314 +++---- src/models/jsonld/Longitudinal.php | 246 +++--- src/models/jsonld/LoseAction.php | 290 +++--- src/models/jsonld/LowCalorieDiet.php | 244 +++--- src/models/jsonld/LowFatDiet.php | 244 +++--- src/models/jsonld/LowLactoseDiet.php | 244 +++--- src/models/jsonld/LowSaltDiet.php | 244 +++--- src/models/jsonld/Lung.php | 306 +++---- src/models/jsonld/LymphaticVessel.php | 316 +++---- src/models/jsonld/MRI.php | 246 +++--- src/models/jsonld/MSRP.php | 244 +++--- src/models/jsonld/Male.php | 244 +++--- src/models/jsonld/Manuscript.php | 650 +++++++------- src/models/jsonld/Map.php | 654 +++++++------- src/models/jsonld/MapCategoryType.php | 242 ++--- src/models/jsonld/MarryAction.php | 286 +++--- src/models/jsonld/Mass.php | 238 ++--- src/models/jsonld/MathSolver.php | 654 +++++++------- src/models/jsonld/MaximumDoseSchedule.php | 288 +++--- src/models/jsonld/MayTreatHealthAspect.php | 244 +++--- .../jsonld/MeasurementTypeEnumeration.php | 242 ++--- src/models/jsonld/MediaGallery.php | 694 +++++++-------- .../MediaManipulationRatingEnumeration.php | 242 ++--- src/models/jsonld/MediaObject.php | 722 +++++++-------- src/models/jsonld/MediaReview.php | 700 +++++++-------- src/models/jsonld/MediaReviewItem.php | 654 +++++++------- src/models/jsonld/MediaSubscription.php | 244 +++--- src/models/jsonld/MedicalAudience.php | 284 +++--- src/models/jsonld/MedicalAudienceType.php | 244 +++--- src/models/jsonld/MedicalBusiness.php | 618 ++++++------- src/models/jsonld/MedicalCause.php | 272 +++--- src/models/jsonld/MedicalClinic.php | 638 +++++++------- src/models/jsonld/MedicalCode.php | 296 +++---- src/models/jsonld/MedicalCondition.php | 332 +++---- src/models/jsonld/MedicalConditionStage.php | 278 +++--- src/models/jsonld/MedicalContraindication.php | 268 +++--- src/models/jsonld/MedicalDevice.php | 292 +++---- src/models/jsonld/MedicalDevicePurpose.php | 244 +++--- src/models/jsonld/MedicalEntity.php | 266 +++--- src/models/jsonld/MedicalEnumeration.php | 242 ++--- src/models/jsonld/MedicalEvidenceLevel.php | 244 +++--- src/models/jsonld/MedicalGuideline.php | 284 +++--- .../MedicalGuidelineContraindication.php | 286 +++--- .../jsonld/MedicalGuidelineRecommendation.php | 290 +++--- src/models/jsonld/MedicalImagingTechnique.php | 244 +++--- src/models/jsonld/MedicalIndication.php | 268 +++--- src/models/jsonld/MedicalIntangible.php | 268 +++--- .../jsonld/MedicalObservationalStudy.php | 294 +++---- .../MedicalObservationalStudyDesign.php | 244 +++--- src/models/jsonld/MedicalOrganization.php | 478 +++++----- src/models/jsonld/MedicalProcedure.php | 292 +++---- src/models/jsonld/MedicalProcedureType.php | 244 +++--- src/models/jsonld/MedicalResearcher.php | 246 +++--- src/models/jsonld/MedicalRiskCalculator.php | 278 +++--- src/models/jsonld/MedicalRiskEstimator.php | 276 +++--- src/models/jsonld/MedicalRiskFactor.php | 272 +++--- src/models/jsonld/MedicalRiskScore.php | 282 +++--- src/models/jsonld/MedicalScholarlyArticle.php | 690 +++++++-------- src/models/jsonld/MedicalSign.php | 344 ++++---- src/models/jsonld/MedicalSignOrSymptom.php | 334 +++---- src/models/jsonld/MedicalSpecialty.php | 246 +++--- src/models/jsonld/MedicalStudy.php | 288 +++--- src/models/jsonld/MedicalStudyStatus.php | 244 +++--- src/models/jsonld/MedicalSymptom.php | 336 +++---- src/models/jsonld/MedicalTest.php | 288 +++--- src/models/jsonld/MedicalTestPanel.php | 294 +++---- src/models/jsonld/MedicalTherapy.php | 320 +++---- src/models/jsonld/MedicalTrial.php | 294 +++---- src/models/jsonld/MedicalTrialDesign.php | 244 +++--- src/models/jsonld/MedicalWebPage.php | 700 +++++++-------- src/models/jsonld/MedicineSystem.php | 244 +++--- src/models/jsonld/MeetingRoom.php | 438 +++++----- src/models/jsonld/MensClothingStore.php | 620 ++++++------- src/models/jsonld/Menu.php | 658 +++++++------- src/models/jsonld/MenuItem.php | 252 +++--- src/models/jsonld/MenuSection.php | 658 +++++++------- .../jsonld/MerchantReturnEnumeration.php | 242 ++--- .../MerchantReturnFiniteReturnWindow.php | 244 +++--- .../jsonld/MerchantReturnNotPermitted.php | 244 +++--- src/models/jsonld/MerchantReturnPolicy.php | 320 +++---- .../MerchantReturnPolicySeasonalOverride.php | 252 +++--- .../jsonld/MerchantReturnUnlimitedWindow.php | 244 +++--- .../jsonld/MerchantReturnUnspecified.php | 244 +++--- src/models/jsonld/Message.php | 686 +++++++-------- src/models/jsonld/MiddleSchool.php | 604 ++++++------- src/models/jsonld/Midwifery.php | 634 +++++++------- src/models/jsonld/MinimumAdvertisedPrice.php | 244 +++--- .../jsonld/MisconceptionsHealthAspect.php | 244 +++--- .../jsonld/MixedEventAttendanceMode.php | 244 +++--- src/models/jsonld/MixtapeAlbum.php | 244 +++--- src/models/jsonld/MobileApplication.php | 752 ++++++++-------- src/models/jsonld/MobilePhoneStore.php | 620 ++++++------- src/models/jsonld/MobileWebPlatform.php | 244 +++--- src/models/jsonld/MolecularEntity.php | 324 +++---- src/models/jsonld/Monday.php | 244 +++--- src/models/jsonld/MonetaryAmount.php | 262 +++--- .../jsonld/MonetaryAmountDistribution.php | 268 +++--- src/models/jsonld/MonetaryGrant.php | 254 +++--- src/models/jsonld/MoneyTransfer.php | 302 +++---- src/models/jsonld/MortgageLoan.php | 394 ++++----- src/models/jsonld/Mosque.php | 424 ++++----- src/models/jsonld/Motel.php | 648 +++++++------- src/models/jsonld/Motorcycle.php | 572 ++++++------ src/models/jsonld/MotorcycleDealer.php | 620 ++++++------- src/models/jsonld/MotorcycleRepair.php | 620 ++++++------- src/models/jsonld/MotorizedBicycle.php | 572 ++++++------ src/models/jsonld/Mountain.php | 418 ++++----- src/models/jsonld/MoveAction.php | 292 +++---- src/models/jsonld/Movie.php | 690 +++++++-------- src/models/jsonld/MovieClip.php | 696 +++++++-------- src/models/jsonld/MovieRentalStore.php | 620 ++++++------- src/models/jsonld/MovieSeries.php | 696 +++++++-------- src/models/jsonld/MovieTheater.php | 626 ++++++------- src/models/jsonld/MovingCompany.php | 620 ++++++------- src/models/jsonld/MultiCenterTrial.php | 246 +++--- src/models/jsonld/MultiPlayer.php | 244 +++--- src/models/jsonld/MulticellularParasite.php | 246 +++--- src/models/jsonld/Muscle.php | 322 +++---- src/models/jsonld/Musculoskeletal.php | 248 +++--- src/models/jsonld/MusculoskeletalExam.php | 306 +++---- src/models/jsonld/Museum.php | 422 ++++----- src/models/jsonld/MusicAlbum.php | 680 +++++++------- .../jsonld/MusicAlbumProductionType.php | 242 ++--- src/models/jsonld/MusicAlbumReleaseType.php | 242 ++--- src/models/jsonld/MusicComposition.php | 690 +++++++-------- src/models/jsonld/MusicEvent.php | 400 ++++----- src/models/jsonld/MusicGroup.php | 492 +++++------ src/models/jsonld/MusicPlaylist.php | 662 +++++++------- src/models/jsonld/MusicRecording.php | 674 +++++++------- src/models/jsonld/MusicRelease.php | 688 +++++++-------- src/models/jsonld/MusicReleaseFormatType.php | 242 ++--- src/models/jsonld/MusicStore.php | 620 ++++++------- src/models/jsonld/MusicVenue.php | 422 ++++----- src/models/jsonld/MusicVideoObject.php | 724 +++++++-------- src/models/jsonld/NGO.php | 466 +++++----- src/models/jsonld/NLNonprofitType.php | 244 +++--- src/models/jsonld/NailSalon.php | 620 ++++++------- src/models/jsonld/NarcoticConsideration.php | 244 +++--- src/models/jsonld/Neck.php | 306 +++---- src/models/jsonld/Nerve.php | 318 +++---- src/models/jsonld/Neuro.php | 306 +++---- src/models/jsonld/Neurologic.php | 248 +++--- src/models/jsonld/NewCondition.php | 244 +++--- src/models/jsonld/NewsArticle.php | 704 +++++++-------- src/models/jsonld/NewsMediaOrganization.php | 482 +++++----- src/models/jsonld/Newspaper.php | 670 +++++++------- src/models/jsonld/NightClub.php | 620 ++++++------- src/models/jsonld/NoninvasiveProcedure.php | 246 +++--- src/models/jsonld/Nonprofit501a.php | 246 +++--- src/models/jsonld/Nonprofit501c1.php | 246 +++--- src/models/jsonld/Nonprofit501c10.php | 246 +++--- src/models/jsonld/Nonprofit501c11.php | 246 +++--- src/models/jsonld/Nonprofit501c12.php | 246 +++--- src/models/jsonld/Nonprofit501c13.php | 246 +++--- src/models/jsonld/Nonprofit501c14.php | 246 +++--- src/models/jsonld/Nonprofit501c15.php | 246 +++--- src/models/jsonld/Nonprofit501c16.php | 246 +++--- src/models/jsonld/Nonprofit501c17.php | 246 +++--- src/models/jsonld/Nonprofit501c18.php | 246 +++--- src/models/jsonld/Nonprofit501c19.php | 246 +++--- src/models/jsonld/Nonprofit501c2.php | 246 +++--- src/models/jsonld/Nonprofit501c20.php | 246 +++--- src/models/jsonld/Nonprofit501c21.php | 246 +++--- src/models/jsonld/Nonprofit501c22.php | 246 +++--- src/models/jsonld/Nonprofit501c23.php | 246 +++--- src/models/jsonld/Nonprofit501c24.php | 246 +++--- src/models/jsonld/Nonprofit501c25.php | 246 +++--- src/models/jsonld/Nonprofit501c26.php | 246 +++--- src/models/jsonld/Nonprofit501c27.php | 246 +++--- src/models/jsonld/Nonprofit501c28.php | 246 +++--- src/models/jsonld/Nonprofit501c3.php | 246 +++--- src/models/jsonld/Nonprofit501c4.php | 246 +++--- src/models/jsonld/Nonprofit501c5.php | 246 +++--- src/models/jsonld/Nonprofit501c6.php | 246 +++--- src/models/jsonld/Nonprofit501c7.php | 246 +++--- src/models/jsonld/Nonprofit501c8.php | 246 +++--- src/models/jsonld/Nonprofit501c9.php | 246 +++--- src/models/jsonld/Nonprofit501d.php | 246 +++--- src/models/jsonld/Nonprofit501e.php | 246 +++--- src/models/jsonld/Nonprofit501f.php | 246 +++--- src/models/jsonld/Nonprofit501k.php | 246 +++--- src/models/jsonld/Nonprofit501n.php | 246 +++--- src/models/jsonld/Nonprofit501q.php | 246 +++--- src/models/jsonld/Nonprofit527.php | 246 +++--- src/models/jsonld/NonprofitANBI.php | 246 +++--- src/models/jsonld/NonprofitSBBI.php | 246 +++--- src/models/jsonld/NonprofitType.php | 242 ++--- src/models/jsonld/Nose.php | 306 +++---- src/models/jsonld/NotInForce.php | 246 +++--- src/models/jsonld/NotYetRecruiting.php | 246 +++--- src/models/jsonld/Notary.php | 620 ++++++------- src/models/jsonld/NoteDigitalDocument.php | 656 +++++++------- src/models/jsonld/Number.php | 188 ++-- src/models/jsonld/Nursing.php | 634 +++++++------- src/models/jsonld/NutritionInformation.php | 286 +++--- src/models/jsonld/OTC.php | 246 +++--- src/models/jsonld/Observation.php | 256 +++--- src/models/jsonld/Observational.php | 246 +++--- src/models/jsonld/Obstetric.php | 634 +++++++------- src/models/jsonld/Occupation.php | 268 +++--- src/models/jsonld/OccupationalActivity.php | 244 +++--- .../OccupationalExperienceRequirements.php | 240 ++--- src/models/jsonld/OccupationalTherapy.php | 322 +++---- src/models/jsonld/OceanBodyOfWater.php | 420 ++++----- src/models/jsonld/Offer.php | 406 ++++----- src/models/jsonld/OfferCatalog.php | 250 +++--- src/models/jsonld/OfferForLease.php | 442 +++++----- src/models/jsonld/OfferForPurchase.php | 442 +++++----- src/models/jsonld/OfferItemCondition.php | 242 ++--- src/models/jsonld/OfferShippingDetails.php | 286 +++--- src/models/jsonld/OfficeEquipmentStore.php | 620 ++++++------- src/models/jsonld/OfficialLegalValue.php | 244 +++--- .../jsonld/OfflineEventAttendanceMode.php | 244 +++--- src/models/jsonld/OfflinePermanently.php | 246 +++--- src/models/jsonld/OfflineTemporarily.php | 246 +++--- src/models/jsonld/OnDemandEvent.php | 414 ++++----- src/models/jsonld/OnSitePickup.php | 244 +++--- src/models/jsonld/Oncologic.php | 634 +++++++------- src/models/jsonld/OneTimePayments.php | 244 +++--- src/models/jsonld/Online.php | 246 +++--- src/models/jsonld/OnlineBusiness.php | 466 +++++----- .../jsonld/OnlineEventAttendanceMode.php | 244 +++--- src/models/jsonld/OnlineFull.php | 246 +++--- src/models/jsonld/OnlineOnly.php | 244 +++--- src/models/jsonld/OnlineStore.php | 468 +++++----- src/models/jsonld/OpenTrial.php | 246 +++--- .../jsonld/OpeningHoursSpecification.php | 258 +++--- src/models/jsonld/OpinionNewsArticle.php | 706 +++++++-------- src/models/jsonld/Optician.php | 620 ++++++------- src/models/jsonld/Optometric.php | 634 +++++++------- src/models/jsonld/Order.php | 324 +++---- src/models/jsonld/OrderAction.php | 302 +++---- src/models/jsonld/OrderCancelled.php | 246 +++--- src/models/jsonld/OrderDelivered.php | 246 +++--- src/models/jsonld/OrderInTransit.php | 246 +++--- src/models/jsonld/OrderItem.php | 256 +++--- src/models/jsonld/OrderPaymentDue.php | 246 +++--- src/models/jsonld/OrderPickupAvailable.php | 246 +++--- src/models/jsonld/OrderProblem.php | 246 +++--- src/models/jsonld/OrderProcessing.php | 246 +++--- src/models/jsonld/OrderReturned.php | 246 +++--- src/models/jsonld/OrderStatus.php | 244 +++--- src/models/jsonld/Organization.php | 464 +++++----- src/models/jsonld/OrganizationRole.php | 258 +++--- src/models/jsonld/OrganizeAction.php | 284 +++--- src/models/jsonld/OriginalMediaContent.php | 244 +++--- src/models/jsonld/OriginalShippingFees.php | 244 +++--- src/models/jsonld/Osteopathic.php | 246 +++--- src/models/jsonld/Otolaryngologic.php | 634 +++++++------- src/models/jsonld/OutOfStock.php | 244 +++--- src/models/jsonld/OutletStore.php | 620 ++++++------- src/models/jsonld/OverviewHealthAspect.php | 244 +++--- src/models/jsonld/OwnershipInfo.php | 254 +++--- src/models/jsonld/PET.php | 246 +++--- src/models/jsonld/PaidLeave.php | 244 +++--- src/models/jsonld/PaintAction.php | 286 +++--- src/models/jsonld/Painting.php | 650 +++++++------- src/models/jsonld/PalliativeProcedure.php | 322 +++---- src/models/jsonld/Paperback.php | 244 +++--- src/models/jsonld/ParcelDelivery.php | 284 +++--- src/models/jsonld/ParcelService.php | 244 +++--- src/models/jsonld/ParentAudience.php | 292 +++---- src/models/jsonld/ParentalSupport.php | 244 +++--- src/models/jsonld/Park.php | 422 ++++----- src/models/jsonld/ParkingFacility.php | 422 ++++----- src/models/jsonld/ParkingMap.php | 244 +++--- src/models/jsonld/PartiallyInForce.php | 246 +++--- src/models/jsonld/Pathology.php | 248 +++--- src/models/jsonld/PathologyTest.php | 294 +++---- src/models/jsonld/Patient.php | 514 +++++------ .../jsonld/PatientExperienceHealthAspect.php | 244 +++--- src/models/jsonld/PawnShop.php | 620 ++++++------- src/models/jsonld/PayAction.php | 302 +++---- .../jsonld/PaymentAutomaticallyApplied.php | 246 +++--- src/models/jsonld/PaymentCard.php | 372 ++++---- .../jsonld/PaymentChargeSpecification.php | 284 +++--- src/models/jsonld/PaymentComplete.php | 246 +++--- src/models/jsonld/PaymentDeclined.php | 246 +++--- src/models/jsonld/PaymentDue.php | 246 +++--- src/models/jsonld/PaymentMethod.php | 242 ++--- src/models/jsonld/PaymentPastDue.php | 246 +++--- src/models/jsonld/PaymentService.php | 348 ++++---- src/models/jsonld/PaymentStatusType.php | 244 +++--- src/models/jsonld/Pediatric.php | 634 +++++++------- src/models/jsonld/PeopleAudience.php | 282 +++--- src/models/jsonld/PercutaneousProcedure.php | 246 +++--- src/models/jsonld/PerformAction.php | 298 +++---- src/models/jsonld/PerformanceRole.php | 258 +++--- src/models/jsonld/PerformingArtsTheater.php | 422 ++++----- src/models/jsonld/PerformingGroup.php | 466 +++++----- src/models/jsonld/Periodical.php | 668 +++++++------- src/models/jsonld/Permit.php | 264 +++--- src/models/jsonld/Person.php | 452 +++++----- src/models/jsonld/PetStore.php | 620 ++++++------- src/models/jsonld/Pharmacy.php | 634 +++++++------- src/models/jsonld/PharmacySpecialty.php | 248 +++--- src/models/jsonld/Photograph.php | 650 +++++++------- src/models/jsonld/PhotographAction.php | 286 +++--- src/models/jsonld/PhysicalActivity.php | 286 +++--- .../jsonld/PhysicalActivityCategory.php | 242 ++--- src/models/jsonld/PhysicalExam.php | 304 +++---- src/models/jsonld/PhysicalTherapy.php | 322 +++---- src/models/jsonld/Physician.php | 642 +++++++------- src/models/jsonld/Physiotherapy.php | 634 +++++++------- src/models/jsonld/Place.php | 414 ++++----- src/models/jsonld/PlaceOfWorship.php | 422 ++++----- src/models/jsonld/PlaceboControlledTrial.php | 246 +++--- src/models/jsonld/PlanAction.php | 290 +++--- src/models/jsonld/PlasticSurgery.php | 634 +++++++------- src/models/jsonld/Play.php | 650 +++++++------- src/models/jsonld/PlayAction.php | 292 +++---- src/models/jsonld/PlayGameAction.php | 298 +++---- src/models/jsonld/Playground.php | 422 ++++----- src/models/jsonld/Plumber.php | 620 ++++++------- src/models/jsonld/PodcastEpisode.php | 696 +++++++-------- src/models/jsonld/PodcastSeason.php | 696 +++++++-------- src/models/jsonld/PodcastSeries.php | 676 +++++++------- src/models/jsonld/Podiatric.php | 634 +++++++------- src/models/jsonld/PoliceStation.php | 622 ++++++------- src/models/jsonld/Pond.php | 420 ++++----- src/models/jsonld/PostOffice.php | 620 ++++++------- src/models/jsonld/PostalAddress.php | 304 +++---- .../jsonld/PostalCodeRangeSpecification.php | 246 +++--- src/models/jsonld/Poster.php | 650 +++++++------- src/models/jsonld/PotentialActionStatus.php | 246 +++--- src/models/jsonld/PreOrder.php | 244 +++--- src/models/jsonld/PreOrderAction.php | 298 +++---- src/models/jsonld/PreSale.php | 244 +++--- src/models/jsonld/PregnancyHealthAspect.php | 244 +++--- src/models/jsonld/PrependAction.php | 302 +++---- src/models/jsonld/Preschool.php | 604 ++++++------- src/models/jsonld/PrescriptionOnly.php | 246 +++--- .../jsonld/PresentationDigitalDocument.php | 656 +++++++------- src/models/jsonld/PreventionHealthAspect.php | 244 +++--- src/models/jsonld/PreventionIndication.php | 270 +++--- .../jsonld/PriceComponentTypeEnumeration.php | 242 ++--- src/models/jsonld/PriceSpecification.php | 274 +++--- src/models/jsonld/PriceTypeEnumeration.php | 242 ++--- src/models/jsonld/PrimaryCare.php | 634 +++++++------- src/models/jsonld/Prion.php | 246 +++--- src/models/jsonld/Product.php | 454 +++++----- src/models/jsonld/ProductCollection.php | 826 +++++++++--------- src/models/jsonld/ProductGroup.php | 434 ++++----- src/models/jsonld/ProductModel.php | 430 ++++----- src/models/jsonld/ProfessionalService.php | 618 ++++++------- src/models/jsonld/ProfilePage.php | 692 +++++++-------- src/models/jsonld/PrognosisHealthAspect.php | 244 +++--- src/models/jsonld/ProgramMembership.php | 260 +++--- src/models/jsonld/Project.php | 466 +++++----- src/models/jsonld/PronounceableText.php | 202 ++--- src/models/jsonld/Property.php | 252 +++--- src/models/jsonld/PropertyValue.php | 270 +++--- .../jsonld/PropertyValueSpecification.php | 280 +++--- src/models/jsonld/Protein.php | 292 +++---- src/models/jsonld/Protozoa.php | 246 +++--- src/models/jsonld/Psychiatric.php | 634 +++++++------- src/models/jsonld/PsychologicalTreatment.php | 308 +++---- src/models/jsonld/PublicHealth.php | 634 +++++++------- src/models/jsonld/PublicHolidays.php | 244 +++--- src/models/jsonld/PublicSwimmingPool.php | 620 ++++++------- src/models/jsonld/PublicToilet.php | 422 ++++----- src/models/jsonld/PublicationEvent.php | 412 ++++----- src/models/jsonld/PublicationIssue.php | 666 +++++++------- src/models/jsonld/PublicationVolume.php | 666 +++++++------- src/models/jsonld/Pulmonary.php | 248 +++--- src/models/jsonld/QAPage.php | 692 +++++++-------- src/models/jsonld/QualitativeValue.php | 274 +++--- src/models/jsonld/QuantitativeValue.php | 266 +++--- .../jsonld/QuantitativeValueDistribution.php | 262 +++--- src/models/jsonld/Quantity.php | 236 ++--- src/models/jsonld/Question.php | 680 +++++++------- src/models/jsonld/Quiz.php | 656 +++++++------- src/models/jsonld/Quotation.php | 654 +++++++------- src/models/jsonld/QuoteAction.php | 298 +++---- src/models/jsonld/RVPark.php | 422 ++++----- src/models/jsonld/RadiationTherapy.php | 322 +++---- src/models/jsonld/RadioBroadcastService.php | 380 ++++---- src/models/jsonld/RadioChannel.php | 262 +++--- src/models/jsonld/RadioClip.php | 696 +++++++-------- src/models/jsonld/RadioEpisode.php | 696 +++++++-------- src/models/jsonld/RadioSeason.php | 696 +++++++-------- src/models/jsonld/RadioSeries.php | 724 +++++++-------- src/models/jsonld/RadioStation.php | 618 ++++++------- src/models/jsonld/Radiography.php | 188 ++-- src/models/jsonld/RandomizedTrial.php | 246 +++--- src/models/jsonld/Rating.php | 260 +++--- src/models/jsonld/ReactAction.php | 286 +++--- src/models/jsonld/ReadAction.php | 294 +++---- src/models/jsonld/ReadPermission.php | 244 +++--- src/models/jsonld/RealEstateAgent.php | 618 ++++++------- src/models/jsonld/RealEstateListing.php | 700 +++++++-------- .../jsonld/RearWheelDriveConfiguration.php | 278 +++--- src/models/jsonld/ReceiveAction.php | 302 +++---- src/models/jsonld/Recipe.php | 728 +++++++-------- src/models/jsonld/Recommendation.php | 692 +++++++-------- src/models/jsonld/RecommendedDoseSchedule.php | 288 +++--- src/models/jsonld/Recruiting.php | 246 +++--- src/models/jsonld/RecyclingCenter.php | 618 ++++++------- ...ducedRelevanceForChildrenConsideration.php | 244 +++--- src/models/jsonld/RefundTypeEnumeration.php | 242 ++--- src/models/jsonld/RefurbishedCondition.php | 244 +++--- src/models/jsonld/RegisterAction.php | 286 +++--- src/models/jsonld/Registry.php | 246 +++--- src/models/jsonld/ReimbursementCap.php | 246 +++--- src/models/jsonld/RejectAction.php | 288 +++--- .../jsonld/RelatedTopicsHealthAspect.php | 244 +++--- src/models/jsonld/RemixAlbum.php | 244 +++--- src/models/jsonld/Renal.php | 248 +++--- src/models/jsonld/RentAction.php | 306 +++---- src/models/jsonld/RentalCarReservation.php | 306 +++---- src/models/jsonld/RentalVehicleUsage.php | 244 +++--- src/models/jsonld/RepaymentSpecification.php | 258 +++--- src/models/jsonld/ReplaceAction.php | 302 +++---- src/models/jsonld/ReplyAction.php | 308 +++---- src/models/jsonld/Report.php | 688 +++++++-------- src/models/jsonld/ReportageNewsArticle.php | 706 +++++++-------- src/models/jsonld/ReportedDoseSchedule.php | 288 +++--- src/models/jsonld/ResearchOrganization.php | 466 +++++----- src/models/jsonld/ResearchProject.php | 468 +++++----- src/models/jsonld/Researcher.php | 246 +++--- src/models/jsonld/Reservation.php | 288 +++--- src/models/jsonld/ReservationCancelled.php | 246 +++--- src/models/jsonld/ReservationConfirmed.php | 246 +++--- src/models/jsonld/ReservationHold.php | 246 +++--- src/models/jsonld/ReservationPackage.php | 294 +++---- src/models/jsonld/ReservationPending.php | 246 +++--- src/models/jsonld/ReservationStatusType.php | 244 +++--- src/models/jsonld/ReserveAction.php | 292 +++---- src/models/jsonld/Reservoir.php | 420 ++++----- src/models/jsonld/Residence.php | 420 ++++----- src/models/jsonld/Resort.php | 648 +++++++------- src/models/jsonld/RespiratoryTherapy.php | 336 +++---- src/models/jsonld/Restaurant.php | 640 +++++++------- src/models/jsonld/RestockingFees.php | 244 +++--- src/models/jsonld/RestrictedDiet.php | 242 ++--- src/models/jsonld/ResultsAvailable.php | 246 +++--- src/models/jsonld/ResultsNotAvailable.php | 246 +++--- src/models/jsonld/ResumeAction.php | 286 +++--- src/models/jsonld/Retail.php | 246 +++--- src/models/jsonld/ReturnAction.php | 298 +++---- src/models/jsonld/ReturnAtKiosk.php | 244 +++--- src/models/jsonld/ReturnByMail.php | 244 +++--- .../ReturnFeesCustomerResponsibility.php | 244 +++--- src/models/jsonld/ReturnFeesEnumeration.php | 242 ++--- src/models/jsonld/ReturnInStore.php | 244 +++--- .../ReturnLabelCustomerResponsibility.php | 244 +++--- .../jsonld/ReturnLabelDownloadAndPrint.php | 244 +++--- src/models/jsonld/ReturnLabelInBox.php | 244 +++--- .../jsonld/ReturnLabelSourceEnumeration.php | 242 ++--- src/models/jsonld/ReturnMethodEnumeration.php | 242 ++--- src/models/jsonld/ReturnShippingFees.php | 244 +++--- src/models/jsonld/Review.php | 686 +++++++-------- src/models/jsonld/ReviewAction.php | 290 +++--- src/models/jsonld/ReviewNewsArticle.php | 746 ++++++++-------- src/models/jsonld/Rheumatologic.php | 248 +++--- src/models/jsonld/RightHandDriving.php | 278 +++--- .../RisksOrComplicationsHealthAspect.php | 244 +++--- src/models/jsonld/RiverBodyOfWater.php | 420 ++++----- src/models/jsonld/Role.php | 252 +++--- src/models/jsonld/RoofingContractor.php | 620 ++++++------- src/models/jsonld/Room.php | 436 ++++----- src/models/jsonld/RsvpAction.php | 322 +++---- src/models/jsonld/RsvpResponseMaybe.php | 244 +++--- src/models/jsonld/RsvpResponseNo.php | 244 +++--- src/models/jsonld/RsvpResponseType.php | 242 ++--- src/models/jsonld/RsvpResponseYes.php | 244 +++--- src/models/jsonld/SRP.php | 244 +++--- src/models/jsonld/SafetyHealthAspect.php | 244 +++--- src/models/jsonld/SaleEvent.php | 400 ++++----- src/models/jsonld/SalePrice.php | 244 +++--- src/models/jsonld/SatireOrParodyContent.php | 244 +++--- src/models/jsonld/SatiricalArticle.php | 684 +++++++-------- src/models/jsonld/Saturday.php | 244 +++--- src/models/jsonld/Schedule.php | 288 +++--- src/models/jsonld/ScheduleAction.php | 292 +++---- src/models/jsonld/Schema3DModel.php | 728 +++++++-------- src/models/jsonld/SchemaClass.php | 240 ++--- src/models/jsonld/SchemaFalse.php | 190 ++-- src/models/jsonld/SchemaFloat.php | 190 ++-- src/models/jsonld/SchemaTrue.php | 190 ++-- src/models/jsonld/ScholarlyArticle.php | 684 +++++++-------- src/models/jsonld/School.php | 604 ++++++------- src/models/jsonld/SchoolDistrict.php | 418 ++++----- src/models/jsonld/ScreeningEvent.php | 412 ++++----- src/models/jsonld/ScreeningHealthAspect.php | 244 +++--- src/models/jsonld/Sculpture.php | 650 +++++++------- src/models/jsonld/SeaBodyOfWater.php | 420 ++++----- src/models/jsonld/SearchAction.php | 288 +++--- .../jsonld/SearchRescueOrganization.php | 466 +++++----- src/models/jsonld/SearchResultsPage.php | 692 +++++++-------- src/models/jsonld/Season.php | 650 +++++++------- src/models/jsonld/Seat.php | 252 +++--- src/models/jsonld/SeatingMap.php | 244 +++--- src/models/jsonld/SeeDoctorHealthAspect.php | 244 +++--- src/models/jsonld/SeekToAction.php | 288 +++--- src/models/jsonld/SelfCareHealthAspect.php | 244 +++--- src/models/jsonld/SelfStorage.php | 618 ++++++------- src/models/jsonld/SellAction.php | 306 +++---- src/models/jsonld/SendAction.php | 302 +++---- src/models/jsonld/Series.php | 236 ++--- src/models/jsonld/Service.php | 332 +++---- src/models/jsonld/ServiceChannel.php | 268 +++--- .../jsonld/SexualContentConsideration.php | 244 +++--- src/models/jsonld/ShareAction.php | 304 +++---- src/models/jsonld/SheetMusic.php | 650 +++++++------- src/models/jsonld/ShippingDeliveryTime.php | 254 +++--- src/models/jsonld/ShippingRateSettings.php | 262 +++--- src/models/jsonld/ShoeStore.php | 620 ++++++------- src/models/jsonld/ShoppingCenter.php | 618 ++++++------- src/models/jsonld/ShortStory.php | 650 +++++++------- src/models/jsonld/SideEffectsHealthAspect.php | 244 +++--- src/models/jsonld/SingleBlindedTrial.php | 246 +++--- src/models/jsonld/SingleCenterTrial.php | 246 +++--- src/models/jsonld/SingleFamilyResidence.php | 442 +++++----- src/models/jsonld/SinglePlayer.php | 244 +++--- src/models/jsonld/SingleRelease.php | 244 +++--- src/models/jsonld/SiteNavigationElement.php | 660 +++++++------- src/models/jsonld/SizeGroupEnumeration.php | 242 ++--- src/models/jsonld/SizeSpecification.php | 300 +++---- src/models/jsonld/SizeSystemEnumeration.php | 242 ++--- src/models/jsonld/SizeSystemImperial.php | 244 +++--- src/models/jsonld/SizeSystemMetric.php | 244 +++--- src/models/jsonld/SkiResort.php | 652 +++++++------- src/models/jsonld/Skin.php | 306 +++---- src/models/jsonld/SocialEvent.php | 400 ++++----- src/models/jsonld/SocialMediaPosting.php | 688 +++++++-------- src/models/jsonld/SoftwareApplication.php | 746 ++++++++-------- src/models/jsonld/SoftwareSourceCode.php | 678 +++++++------- src/models/jsonld/SoldOut.php | 244 +++--- src/models/jsonld/SolveMathAction.php | 288 +++--- src/models/jsonld/SomeProducts.php | 426 ++++----- src/models/jsonld/SoundtrackAlbum.php | 244 +++--- src/models/jsonld/SpeakableSpecification.php | 244 +++--- src/models/jsonld/SpecialAnnouncement.php | 702 +++++++-------- src/models/jsonld/Specialty.php | 242 ++--- src/models/jsonld/SpeechPathology.php | 248 +++--- src/models/jsonld/SpokenWordAlbum.php | 244 +++--- src/models/jsonld/SportingGoodsStore.php | 620 ++++++------- src/models/jsonld/SportsActivityLocation.php | 618 ++++++------- src/models/jsonld/SportsClub.php | 620 ++++++------- src/models/jsonld/SportsEvent.php | 416 ++++----- src/models/jsonld/SportsOrganization.php | 470 +++++----- src/models/jsonld/SportsTeam.php | 484 +++++----- .../jsonld/SpreadsheetDigitalDocument.php | 656 +++++++------- src/models/jsonld/StadiumOrArena.php | 622 ++++++------- src/models/jsonld/StagedContent.php | 244 +++--- src/models/jsonld/StagesHealthAspect.php | 244 +++--- src/models/jsonld/State.php | 418 ++++----- src/models/jsonld/Statement.php | 650 +++++++------- src/models/jsonld/StatisticalPopulation.php | 248 +++--- src/models/jsonld/StatusEnumeration.php | 242 ++--- src/models/jsonld/SteeringPositionValue.php | 276 +++--- src/models/jsonld/Store.php | 618 ++++++------- src/models/jsonld/StoreCreditRefund.php | 244 +++--- src/models/jsonld/StrengthTraining.php | 244 +++--- src/models/jsonld/StructuredValue.php | 236 ++--- src/models/jsonld/StudioAlbum.php | 244 +++--- src/models/jsonld/SubscribeAction.php | 286 +++--- src/models/jsonld/Subscription.php | 244 +++--- src/models/jsonld/Substance.php | 276 +++--- src/models/jsonld/SubwayStation.php | 422 ++++----- src/models/jsonld/Suite.php | 444 +++++----- src/models/jsonld/Sunday.php | 244 +++--- src/models/jsonld/SuperficialAnatomy.php | 288 +++--- src/models/jsonld/Surgical.php | 248 +++--- src/models/jsonld/SurgicalProcedure.php | 294 +++---- src/models/jsonld/SuspendAction.php | 286 +++--- src/models/jsonld/Suspended.php | 246 +++--- src/models/jsonld/SymptomsHealthAspect.php | 244 +++--- src/models/jsonld/Synagogue.php | 424 ++++----- src/models/jsonld/TVClip.php | 700 +++++++-------- src/models/jsonld/TVEpisode.php | 708 +++++++-------- src/models/jsonld/TVSeason.php | 700 +++++++-------- src/models/jsonld/TVSeries.php | 724 +++++++-------- src/models/jsonld/Table.php | 660 +++++++------- src/models/jsonld/TakeAction.php | 294 +++---- src/models/jsonld/TattooParlor.php | 620 ++++++------- src/models/jsonld/Taxi.php | 334 +++---- src/models/jsonld/TaxiReservation.php | 302 +++---- src/models/jsonld/TaxiService.php | 334 +++---- src/models/jsonld/TaxiStand.php | 422 ++++----- src/models/jsonld/TaxiVehicleUsage.php | 244 +++--- src/models/jsonld/Taxon.php | 250 +++--- src/models/jsonld/TechArticle.php | 692 +++++++-------- src/models/jsonld/TelevisionChannel.php | 262 +++--- src/models/jsonld/TelevisionStation.php | 618 ++++++------- src/models/jsonld/TennisComplex.php | 620 ++++++------- src/models/jsonld/Terminated.php | 246 +++--- src/models/jsonld/Text.php | 188 ++-- src/models/jsonld/TextDigitalDocument.php | 656 +++++++------- src/models/jsonld/TheaterEvent.php | 400 ++++----- src/models/jsonld/TheaterGroup.php | 468 +++++----- src/models/jsonld/Therapeutic.php | 246 +++--- src/models/jsonld/TherapeuticProcedure.php | 306 +++---- src/models/jsonld/Thesis.php | 654 +++++++------- src/models/jsonld/Thing.php | 232 ++--- src/models/jsonld/Throat.php | 306 +++---- src/models/jsonld/Thursday.php | 244 +++--- src/models/jsonld/Ticket.php | 268 +++--- src/models/jsonld/TieAction.php | 286 +++--- src/models/jsonld/Time.php | 188 ++-- src/models/jsonld/TipAction.php | 302 +++---- src/models/jsonld/TireShop.php | 620 ++++++------- .../jsonld/TobaccoNicotineConsideration.php | 244 +++--- src/models/jsonld/TollFree.php | 244 +++--- src/models/jsonld/TouristAttraction.php | 424 ++++----- src/models/jsonld/TouristDestination.php | 424 ++++----- .../jsonld/TouristInformationCenter.php | 618 ++++++------- src/models/jsonld/TouristTrip.php | 270 +++--- src/models/jsonld/Toxicologic.php | 248 +++--- src/models/jsonld/ToyStore.php | 620 ++++++------- src/models/jsonld/TrackAction.php | 290 +++--- src/models/jsonld/TradeAction.php | 296 +++---- src/models/jsonld/TraditionalChinese.php | 246 +++--- src/models/jsonld/TrainReservation.php | 290 +++--- src/models/jsonld/TrainStation.php | 422 ++++----- src/models/jsonld/TrainTrip.php | 290 +++--- src/models/jsonld/TransferAction.php | 292 +++---- src/models/jsonld/TransformedContent.php | 244 +++--- src/models/jsonld/TransitMap.php | 244 +++--- src/models/jsonld/TravelAction.php | 298 +++---- src/models/jsonld/TravelAgency.php | 618 ++++++------- src/models/jsonld/TreatmentIndication.php | 270 +++--- src/models/jsonld/TreatmentsHealthAspect.php | 244 +++--- src/models/jsonld/Trip.php | 264 +++--- src/models/jsonld/TripleBlindedTrial.php | 246 +++--- src/models/jsonld/Tuesday.php | 244 +++--- src/models/jsonld/TypeAndQuantityNode.php | 258 +++--- src/models/jsonld/TypesHealthAspect.php | 244 +++--- src/models/jsonld/UKNonprofitType.php | 244 +++--- src/models/jsonld/UKTrust.php | 246 +++--- src/models/jsonld/URL.php | 190 ++-- src/models/jsonld/USNonprofitType.php | 244 +++--- src/models/jsonld/Ultrasound.php | 246 +++--- src/models/jsonld/UnRegisterAction.php | 286 +++--- .../jsonld/UnclassifiedAdultConsideration.php | 244 +++--- src/models/jsonld/UnemploymentSupport.php | 244 +++--- .../UnincorporatedAssociationCharity.php | 246 +++--- src/models/jsonld/UnitPriceSpecification.php | 308 +++---- src/models/jsonld/UnofficialLegalValue.php | 244 +++--- src/models/jsonld/UpdateAction.php | 292 +++---- src/models/jsonld/Urologic.php | 248 +++--- .../jsonld/UsageOrScheduleHealthAspect.php | 244 +++--- src/models/jsonld/UseAction.php | 294 +++---- src/models/jsonld/UsedCondition.php | 244 +++--- src/models/jsonld/UserBlocks.php | 402 ++++----- src/models/jsonld/UserCheckins.php | 402 ++++----- src/models/jsonld/UserComments.php | 422 ++++----- src/models/jsonld/UserDownloads.php | 402 ++++----- src/models/jsonld/UserInteraction.php | 400 ++++----- src/models/jsonld/UserLikes.php | 402 ++++----- src/models/jsonld/UserPageVisits.php | 402 ++++----- src/models/jsonld/UserPlays.php | 402 ++++----- src/models/jsonld/UserPlusOnes.php | 402 ++++----- src/models/jsonld/UserReview.php | 688 +++++++-------- src/models/jsonld/UserTweets.php | 402 ++++----- src/models/jsonld/VeganDiet.php | 244 +++--- src/models/jsonld/VegetarianDiet.php | 244 +++--- src/models/jsonld/Vehicle.php | 570 ++++++------ src/models/jsonld/Vein.php | 316 +++---- src/models/jsonld/VenueMap.php | 244 +++--- src/models/jsonld/Vessel.php | 302 +++---- src/models/jsonld/VeterinaryCare.php | 480 +++++----- src/models/jsonld/VideoGallery.php | 696 +++++++-------- src/models/jsonld/VideoGame.php | 818 ++++++++--------- src/models/jsonld/VideoGameClip.php | 696 +++++++-------- src/models/jsonld/VideoGameSeries.php | 756 ++++++++-------- src/models/jsonld/VideoObject.php | 768 ++++++++-------- src/models/jsonld/VideoObjectSnapshot.php | 770 ++++++++-------- src/models/jsonld/ViewAction.php | 294 +++---- src/models/jsonld/VinylFormat.php | 244 +++--- src/models/jsonld/ViolenceConsideration.php | 244 +++--- src/models/jsonld/VirtualLocation.php | 236 ++--- src/models/jsonld/Virus.php | 246 +++--- src/models/jsonld/VisualArtsEvent.php | 400 ++++----- src/models/jsonld/VisualArtwork.php | 702 +++++++-------- src/models/jsonld/VitalSign.php | 346 ++++---- src/models/jsonld/Volcano.php | 418 ++++----- src/models/jsonld/VoteAction.php | 300 +++---- src/models/jsonld/WPAdBlock.php | 660 +++++++------- src/models/jsonld/WPFooter.php | 660 +++++++------- src/models/jsonld/WPHeader.php | 660 +++++++------- src/models/jsonld/WPSideBar.php | 660 +++++++------- src/models/jsonld/WantAction.php | 288 +++--- src/models/jsonld/WarrantyPromise.php | 246 +++--- src/models/jsonld/WarrantyScope.php | 242 ++--- src/models/jsonld/WatchAction.php | 294 +++---- src/models/jsonld/Waterfall.php | 420 ++++----- src/models/jsonld/WeaponConsideration.php | 244 +++--- src/models/jsonld/WearAction.php | 296 +++---- src/models/jsonld/WearableMeasurementBack.php | 246 +++--- .../jsonld/WearableMeasurementChestOrBust.php | 246 +++--- .../jsonld/WearableMeasurementCollar.php | 246 +++--- src/models/jsonld/WearableMeasurementCup.php | 246 +++--- .../jsonld/WearableMeasurementHeight.php | 246 +++--- src/models/jsonld/WearableMeasurementHips.php | 246 +++--- .../jsonld/WearableMeasurementInseam.php | 246 +++--- .../jsonld/WearableMeasurementLength.php | 246 +++--- .../jsonld/WearableMeasurementOutsideLeg.php | 246 +++--- .../jsonld/WearableMeasurementSleeve.php | 246 +++--- .../WearableMeasurementTypeEnumeration.php | 244 +++--- .../jsonld/WearableMeasurementWaist.php | 246 +++--- .../jsonld/WearableMeasurementWidth.php | 246 +++--- src/models/jsonld/WearableSizeGroupBig.php | 246 +++--- src/models/jsonld/WearableSizeGroupBoys.php | 246 +++--- .../jsonld/WearableSizeGroupEnumeration.php | 244 +++--- .../jsonld/WearableSizeGroupExtraShort.php | 246 +++--- .../jsonld/WearableSizeGroupExtraTall.php | 246 +++--- src/models/jsonld/WearableSizeGroupGirls.php | 246 +++--- src/models/jsonld/WearableSizeGroupHusky.php | 246 +++--- .../jsonld/WearableSizeGroupInfants.php | 246 +++--- .../jsonld/WearableSizeGroupJuniors.php | 246 +++--- .../jsonld/WearableSizeGroupMaternity.php | 246 +++--- src/models/jsonld/WearableSizeGroupMens.php | 246 +++--- src/models/jsonld/WearableSizeGroupMisses.php | 246 +++--- src/models/jsonld/WearableSizeGroupPetite.php | 246 +++--- src/models/jsonld/WearableSizeGroupPlus.php | 246 +++--- .../jsonld/WearableSizeGroupRegular.php | 246 +++--- src/models/jsonld/WearableSizeGroupShort.php | 246 +++--- src/models/jsonld/WearableSizeGroupTall.php | 246 +++--- src/models/jsonld/WearableSizeGroupWomens.php | 246 +++--- src/models/jsonld/WearableSizeSystemAU.php | 246 +++--- src/models/jsonld/WearableSizeSystemBR.php | 246 +++--- src/models/jsonld/WearableSizeSystemCN.php | 246 +++--- .../jsonld/WearableSizeSystemContinental.php | 246 +++--- src/models/jsonld/WearableSizeSystemDE.php | 246 +++--- .../jsonld/WearableSizeSystemEN13402.php | 246 +++--- .../jsonld/WearableSizeSystemEnumeration.php | 244 +++--- .../jsonld/WearableSizeSystemEurope.php | 246 +++--- src/models/jsonld/WearableSizeSystemFR.php | 246 +++--- src/models/jsonld/WearableSizeSystemGS1.php | 246 +++--- src/models/jsonld/WearableSizeSystemIT.php | 246 +++--- src/models/jsonld/WearableSizeSystemJP.php | 246 +++--- src/models/jsonld/WearableSizeSystemMX.php | 246 +++--- src/models/jsonld/WearableSizeSystemUK.php | 246 +++--- src/models/jsonld/WearableSizeSystemUS.php | 246 +++--- src/models/jsonld/WebAPI.php | 338 +++---- src/models/jsonld/WebApplication.php | 752 ++++++++-------- src/models/jsonld/WebContent.php | 650 +++++++------- src/models/jsonld/WebPage.php | 690 +++++++-------- src/models/jsonld/WebPageElement.php | 658 +++++++------- src/models/jsonld/WebSite.php | 654 +++++++------- src/models/jsonld/Wednesday.php | 244 +++--- src/models/jsonld/WesternConventional.php | 246 +++--- src/models/jsonld/Wholesale.php | 246 +++--- src/models/jsonld/WholesaleStore.php | 620 ++++++------- src/models/jsonld/WinAction.php | 290 +++--- src/models/jsonld/Winery.php | 640 +++++++------- src/models/jsonld/Withdrawn.php | 246 +++--- src/models/jsonld/WorkBasedProgram.php | 334 +++---- src/models/jsonld/WorkersUnion.php | 466 +++++----- src/models/jsonld/WriteAction.php | 294 +++---- src/models/jsonld/WritePermission.php | 244 +++--- src/models/jsonld/XPathType.php | 190 ++-- src/models/jsonld/XRay.php | 246 +++--- src/models/jsonld/ZoneBoardingPolicy.php | 244 +++--- src/models/jsonld/Zoo.php | 422 ++++----- src/models/metalink/AuthorLink.php | 5 +- src/models/metalink/HomeLink.php | 6 +- src/models/metatag/OgLocaleTag.php | 2 +- src/models/metatag/OgTitleTag.php | 6 +- src/models/metatag/TwitterTitleTag.php | 6 +- src/records/MetaBundle.php | 1 - src/seoelements/SeoCampaign.php | 13 +- src/seoelements/SeoCategory.php | 31 +- src/seoelements/SeoDigitalProduct.php | 32 +- src/seoelements/SeoEntry.php | 28 +- src/seoelements/SeoEvent.php | 14 +- src/seoelements/SeoProduct.php | 9 +- .../campaignmeta/LinkContainer.php | 15 +- .../campaignmeta/ScriptContainer.php | 15 +- .../campaignmeta/SitemapVars.php | 16 +- .../campaignmeta/TagContainer.php | 57 +- .../categorymeta/LinkContainer.php | 15 +- .../categorymeta/ScriptContainer.php | 15 +- .../categorymeta/SitemapVars.php | 16 +- .../categorymeta/TagContainer.php | 57 +- .../digitalproductmeta/LinkContainer.php | 15 +- .../digitalproductmeta/ScriptContainer.php | 15 +- .../digitalproductmeta/SitemapVars.php | 16 +- .../digitalproductmeta/TagContainer.php | 57 +- .../entrymeta/LinkContainer.php | 15 +- .../entrymeta/ScriptContainer.php | 15 +- src/seomatic-config/entrymeta/SitemapVars.php | 16 +- .../entrymeta/TagContainer.php | 57 +- .../eventmeta/LinkContainer.php | 15 +- .../eventmeta/ScriptContainer.php | 15 +- src/seomatic-config/eventmeta/SitemapVars.php | 16 +- .../eventmeta/TagContainer.php | 57 +- src/seomatic-config/fieldmeta/GlobalVars.php | 52 +- .../fieldmeta/JsonLdContainer.php | 15 +- .../fieldmeta/LinkContainer.php | 15 +- .../fieldmeta/ScriptContainer.php | 15 +- src/seomatic-config/fieldmeta/SitemapVars.php | 16 +- .../fieldmeta/TagContainer.php | 57 +- .../fieldmeta/TitleContainer.php | 15 +- src/seomatic-config/globalmeta/Creator.php | 66 +- src/seomatic-config/globalmeta/Identity.php | 66 +- .../globalmeta/ScriptContainer.php | 1 - src/seomatic-config/globalmeta/SiteVars.php | 76 +- .../globalmeta/SitemapVars.php | 16 +- .../productmeta/LinkContainer.php | 15 +- .../productmeta/ScriptContainer.php | 15 +- .../productmeta/SitemapVars.php | 16 +- .../productmeta/TagContainer.php | 57 +- src/services/FrontendTemplates.php | 4 +- src/services/Helper.php | 6 +- src/services/MetaBundles.php | 8 +- src/services/MetaContainers.php | 11 +- src/services/ServicesTrait.php | 2 +- src/services/Sitemaps.php | 2 +- src/translations/en/seomatic.php | 2 +- src/twigextensions/SeomaticTwigExtension.php | 7 +- src/validators/EmbeddedModelValidator.php | 2 +- 1503 files changed, 255280 insertions(+), 255364 deletions(-) diff --git a/src/Node/Expression/EmptyCoalesceExpression.php b/src/Node/Expression/EmptyCoalesceExpression.php index af9ce6e64..be0dbaeae 100644 --- a/src/Node/Expression/EmptyCoalesceExpression.php +++ b/src/Node/Expression/EmptyCoalesceExpression.php @@ -64,11 +64,11 @@ public function compile(Compiler $compiler) { //$this->getNode('expr1')->setAttribute('always_defined', true); $compiler - ->raw('(('.self::class.'::empty(') + ->raw('((' . self::class . '::empty(') ->subcompile($this->getNode('left')) ->raw(') ? null : ') ->subcompile($this->getNode('left')) - ->raw(') ?? ('.self::class.'::empty(') + ->raw(') ?? (' . self::class . '::empty(') ->subcompile($this->getNode('right')) ->raw(') ? null : ') ->subcompile($this->getNode('right')) diff --git a/src/Seomatic.php b/src/Seomatic.php index b7caa24df..5e3d05006 100644 --- a/src/Seomatic.php +++ b/src/Seomatic.php @@ -332,7 +332,7 @@ protected function installEventListeners() // Install our event listeners only if our table schema exists if ($this->migrationsAndSchemaReady()) { // Add in our Twig extensions - self::$view->registerTwigExtension(new SeomaticTwigExtension); + self::$view->registerTwigExtension(new SeomaticTwigExtension()); $request = Craft::$app->getRequest(); // Add in our event listeners that are needed for every request $this->installGlobalEventListeners(); @@ -349,7 +349,7 @@ protected function installEventListeners() Event::on( Plugins::class, Plugins::EVENT_AFTER_INSTALL_PLUGIN, - function (PluginEvent $event) { + function(PluginEvent $event) { if ($event->plugin === $this) { // Invalidate our caches after we've been installed $this->clearAllCaches(); @@ -370,7 +370,7 @@ function (PluginEvent $event) { Event::on( ClearCaches::class, ClearCaches::EVENT_REGISTER_CACHE_OPTIONS, - function (RegisterCacheOptionsEvent $event) { + function(RegisterCacheOptionsEvent $event) { Craft::debug( 'ClearCaches::EVENT_REGISTER_CACHE_OPTIONS', __METHOD__ @@ -386,7 +386,7 @@ function (RegisterCacheOptionsEvent $event) { Event::on( Plugins::class, Plugins::EVENT_BEFORE_SAVE_PLUGIN_SETTINGS, - function (PluginEvent $event) { + function(PluginEvent $event) { if ($event->plugin === $this && !Craft::$app->getDb()->getSupportsMb4()) { // For all the emojis $settingsModel = $this->getSettings(); @@ -439,7 +439,7 @@ protected function installGlobalEventListeners() Event::on( Plugins::class, Plugins::EVENT_AFTER_LOAD_PLUGINS, - function () { + function() { // Delay registering SEO Elements to give other plugins a chance to load first $this->seoElements->getAllSeoElementTypes(false); // Delay installing GQL handlers to give other plugins a chance to register their own first @@ -460,7 +460,7 @@ function () { Event::on( Fields::class, Fields::EVENT_REGISTER_FIELD_TYPES, - function (RegisterComponentTypesEvent $event) { + function(RegisterComponentTypesEvent $event) { $event->types[] = SeoSettingsField::class; $event->types[] = Seomatic_MetaField::class; } @@ -469,7 +469,7 @@ function (RegisterComponentTypesEvent $event) { Event::on( Element::class, Element::EVENT_AFTER_PROPAGATE, - static function (ModelEvent $event) { + static function(ModelEvent $event) { Craft::debug( 'Element::EVENT_AFTER_PROPAGATE', __METHOD__ @@ -489,7 +489,7 @@ static function (ModelEvent $event) { Event::on( Elements::class, Elements::EVENT_AFTER_DELETE_ELEMENT, - function (ElementEvent $event) { + function(ElementEvent $event) { Craft::debug( 'Elements::EVENT_AFTER_DELETE_ELEMENT', __METHOD__ @@ -508,7 +508,7 @@ function (ElementEvent $event) { Event::on( Entry::class, Entry::EVENT_REGISTER_PREVIEW_TARGETS, - function (RegisterPreviewTargetsEvent $e) { + function(RegisterPreviewTargetsEvent $e) { /** @var Element $element */ $element = $e->sender; if ($element->uri !== null) { @@ -529,7 +529,7 @@ function (RegisterPreviewTargetsEvent $e) { Event::on( Application::class, BaseApplication::EVENT_BEFORE_REQUEST, - static function () { + static function() { /** @var Module|null $debugModule */ $debugModule = Craft::$app->getModule('debug'); @@ -546,7 +546,7 @@ static function () { Event::on( FeedMeFields::class, FeedMeFields::EVENT_REGISTER_FEED_ME_FIELDS, - function (RegisterFeedMeFieldsEvent $e) { + function(RegisterFeedMeFieldsEvent $e) { Craft::debug( 'FeedMeFields::EVENT_REGISTER_FEED_ME_FIELDS', __METHOD__ @@ -555,7 +555,7 @@ function (RegisterFeedMeFieldsEvent $e) { } ); } - $updateMetaBundles = function ($message) { + $updateMetaBundles = function($message) { Craft::debug( $message, __METHOD__ @@ -574,7 +574,7 @@ function (RegisterFeedMeFieldsEvent $e) { Event::on( SitesService::class, SitesService::EVENT_AFTER_SAVE_SITE, - function () use ($updateMetaBundles) { + function() use ($updateMetaBundles) { $updateMetaBundles('SitesService::EVENT_AFTER_SAVE_SITE'); } ); @@ -583,7 +583,7 @@ function () use ($updateMetaBundles) { Event::on( SitesService::class, SitesService::EVENT_AFTER_DELETE_SITE, - function () use ($updateMetaBundles) { + function() use ($updateMetaBundles) { $updateMetaBundles('SitesService::EVENT_AFTER_DELETE_SITE'); } ); @@ -602,7 +602,7 @@ protected function installGqlHandlers() Event::on( Gql::class, Gql::EVENT_REGISTER_GQL_TYPES, - function (RegisterGqlTypesEvent $event) { + function(RegisterGqlTypesEvent $event) { Craft::debug( 'Gql::EVENT_REGISTER_GQL_TYPES', __METHOD__ @@ -615,7 +615,7 @@ function (RegisterGqlTypesEvent $event) { Event::on( Gql::class, Gql::EVENT_REGISTER_GQL_QUERIES, - function (RegisterGqlQueriesEvent $event) { + function(RegisterGqlQueriesEvent $event) { Craft::debug( 'Gql::EVENT_REGISTER_GQL_QUERIES', __METHOD__ @@ -631,7 +631,7 @@ function (RegisterGqlQueriesEvent $event) { Event::on( Gql::class, Gql::EVENT_REGISTER_GQL_SCHEMA_COMPONENTS, - function (RegisterGqlSchemaComponentsEvent $event) { + function(RegisterGqlSchemaComponentsEvent $event) { Craft::debug( 'Gql::EVENT_REGISTER_GQL_SCHEMA_COMPONENTS', __METHOD__ @@ -649,7 +649,7 @@ function (RegisterGqlSchemaComponentsEvent $event) { Event::on( TypeManager::class, TypeManager::EVENT_DEFINE_GQL_TYPE_FIELDS, - function (DefineGqlTypeFieldsEvent $event) use ($knownInterfaceNames) { + function(DefineGqlTypeFieldsEvent $event) use ($knownInterfaceNames) { if (in_array($event->typeName, $knownInterfaceNames, true)) { Craft::debug( 'TypeManager::EVENT_DEFINE_GQL_TYPE_FIELDS', @@ -663,7 +663,7 @@ function (DefineGqlTypeFieldsEvent $event) use ($knownInterfaceNames) { 'type' => SeomaticInterface::getType(), 'args' => SeomaticArguments::getArguments(), 'resolve' => SeomaticResolver::class . '::resolve', - 'description' => Craft::t('seomatic', 'This query is used to query for SEOmatic meta data.') + 'description' => Craft::t('seomatic', 'This query is used to query for SEOmatic meta data.'), ]; } } @@ -690,7 +690,7 @@ protected function handleSiteRequest() Event::on( View::class, View::EVENT_END_PAGE, - function () { + function() { Craft::debug( 'View::EVENT_END_PAGE', __METHOD__ @@ -713,7 +713,7 @@ protected function handleAdminCpRequest() // Don't cache Control Panel requests self::$cacheDuration = 1; // Prefix the Control Panel title - self::$view->hook('cp.layouts.base', function (&$context) { + self::$view->hook('cp.layouts.base', function(&$context) { if (self::$devMode) { $context['docTitle'] = self::$settings->devModeCpTitlePrefix . $context['docTitle']; } else { @@ -735,7 +735,7 @@ protected function installSiteEventListeners() Event::on( UrlManager::class, UrlManager::EVENT_REGISTER_SITE_URL_RULES, - function (RegisterUrlRulesEvent $event) { + function(RegisterUrlRulesEvent $event) { Craft::debug( 'UrlManager::EVENT_REGISTER_SITE_URL_RULES', __METHOD__ @@ -777,7 +777,7 @@ protected function installCpEventListeners() Event::on( UrlManager::class, UrlManager::EVENT_REGISTER_CP_URL_RULES, - function (RegisterUrlRulesEvent $event) { + function(RegisterUrlRulesEvent $event) { Craft::debug( 'UrlManager::EVENT_REGISTER_CP_URL_RULES', __METHOD__ @@ -793,7 +793,7 @@ function (RegisterUrlRulesEvent $event) { Event::on( UserPermissions::class, UserPermissions::EVENT_REGISTER_PERMISSIONS, - function (RegisterUserPermissionsEvent $event) { + function(RegisterUserPermissionsEvent $event) { Craft::debug( 'UserPermissions::EVENT_REGISTER_PERMISSIONS', __METHOD__ @@ -804,7 +804,7 @@ function (RegisterUserPermissionsEvent $event) { ); // Handler: AutocompleteService::EVENT_REGISTER_CODEEDITOR_AUTOCOMPLETES Event::on(AutocompleteService::class, AutocompleteService::EVENT_REGISTER_CODEEDITOR_AUTOCOMPLETES, - function (RegisterCodeEditorAutocompletesEvent $event) { + function(RegisterCodeEditorAutocompletesEvent $event) { if ($event->fieldType === self::SEOMATIC_EXPRESSION_FIELD_TYPE) { $event->types[] = EnvironmentVariableAutocomplete::class; } @@ -816,7 +816,7 @@ function (RegisterCodeEditorAutocompletesEvent $event) { // Handler: TwigTemplateValidator::EVENT_REGISTER_TWIG_VALIDATOR_VARIABLES Event::on(TwigTemplateValidator::class, TwigTemplateValidator::EVENT_REGISTER_TWIG_VALIDATOR_VARIABLES, - function (RegisterTwigValidatorVariablesEvent $event) { + function(RegisterTwigValidatorVariablesEvent $event) { if (Seomatic::$seomaticVariable === null) { Seomatic::$seomaticVariable = new SeomaticVariable(); Seomatic::$plugin->metaContainers->loadGlobalMetaContainers(); diff --git a/src/base/Container.php b/src/base/Container.php index 39be6a990..8ccf80dfe 100644 --- a/src/base/Container.php +++ b/src/base/Container.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\base; -use nystudio107\seomatic\helpers\Dependency; +use craft\validators\ArrayValidator; use nystudio107\seomatic\events\IncludeContainerEvent; -use craft\validators\ArrayValidator; +use nystudio107\seomatic\helpers\Dependency; /** * @author nystudio107 diff --git a/src/base/ContainerInterface.php b/src/base/ContainerInterface.php index e286cc7ea..1d27182fd 100644 --- a/src/base/ContainerInterface.php +++ b/src/base/ContainerInterface.php @@ -18,7 +18,6 @@ */ interface ContainerInterface { - // Constants // ========================================================================= diff --git a/src/base/FluentModel.php b/src/base/FluentModel.php index 60fbca7d4..e43bfdccd 100644 --- a/src/base/FluentModel.php +++ b/src/base/FluentModel.php @@ -25,7 +25,6 @@ */ abstract class FluentModel extends Model { - // Static Protected Methods // ========================================================================= @@ -78,7 +77,7 @@ public function __call($method, $args) // Set the property $value = $args[0]; if (\is_object($value) && $value instanceof Markup) { - $value = (string)$value; + $value = (string)$value; } $property->setValue($this, $value); diff --git a/src/base/FrontendTemplate.php b/src/base/FrontendTemplate.php index 151c7d52d..b90886594 100644 --- a/src/base/FrontendTemplate.php +++ b/src/base/FrontendTemplate.php @@ -11,8 +11,8 @@ namespace nystudio107\seomatic\base; -use nystudio107\seomatic\Seomatic; use nystudio107\seomatic\helpers\PluginTemplate; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 diff --git a/src/base/FrontendTemplateInterface.php b/src/base/FrontendTemplateInterface.php index c4caa410d..9fb5045d1 100644 --- a/src/base/FrontendTemplateInterface.php +++ b/src/base/FrontendTemplateInterface.php @@ -18,7 +18,6 @@ */ interface FrontendTemplateInterface { - // Constants // ========================================================================= diff --git a/src/base/GqlSeoElementInterface.php b/src/base/GqlSeoElementInterface.php index fd51d4322..24e182231 100644 --- a/src/base/GqlSeoElementInterface.php +++ b/src/base/GqlSeoElementInterface.php @@ -11,12 +11,6 @@ namespace nystudio107\seomatic\base; -use nystudio107\seomatic\models\MetaBundle; - -use craft\base\ElementInterface; -use craft\base\Model; -use craft\elements\db\ElementQueryInterface; - /** * @author nystudio107 * @package Seomatic diff --git a/src/base/InheritableSettingsModel.php b/src/base/InheritableSettingsModel.php index c361fd232..9c103e619 100644 --- a/src/base/InheritableSettingsModel.php +++ b/src/base/InheritableSettingsModel.php @@ -22,7 +22,6 @@ */ abstract class InheritableSettingsModel extends VarsModel { - /** * @var array A list of all the settings for which the inherited values should be used. */ diff --git a/src/base/MetaItem.php b/src/base/MetaItem.php index 4086ddc71..177fb2d51 100644 --- a/src/base/MetaItem.php +++ b/src/base/MetaItem.php @@ -142,8 +142,7 @@ public function renderAttributes(array $params = []): array public function debugMetaItem( $errorLabel = 'Error: ', array $scenarios = ['default' => 'error'] - ) - { + ) { $isMetaJsonLdModel = false; if (is_subclass_of($this, MetaJsonLd::class)) { $isMetaJsonLdModel = true; @@ -271,8 +270,7 @@ public function tagAttributesArray(): array public function validateStringOrArray( $attribute, $params - ) - { + ) { $validated = false; if (\is_string($attribute)) { $validated = true; diff --git a/src/base/MetaItemInterface.php b/src/base/MetaItemInterface.php index 1ac0b7ed7..405f1ed79 100644 --- a/src/base/MetaItemInterface.php +++ b/src/base/MetaItemInterface.php @@ -18,7 +18,6 @@ */ interface MetaItemInterface { - // Constants // ========================================================================= diff --git a/src/base/MetaService.php b/src/base/MetaService.php index b5f2169c2..e32dad23e 100644 --- a/src/base/MetaService.php +++ b/src/base/MetaService.php @@ -11,11 +11,10 @@ namespace nystudio107\seomatic\base; -use nystudio107\seomatic\Seomatic; - -use Craft; use craft\base\Component; +use nystudio107\seomatic\Seomatic; + /** * @author nystudio107 * @package Seomatic diff --git a/src/base/NonceContainer.php b/src/base/NonceContainer.php index b31097a23..479f138d7 100644 --- a/src/base/NonceContainer.php +++ b/src/base/NonceContainer.php @@ -11,12 +11,12 @@ namespace nystudio107\seomatic\base; +use Craft; +use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaJsonLdContainer; use nystudio107\seomatic\models\MetaScriptContainer; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\helpers\Dependency; -use Craft; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 @@ -71,7 +71,7 @@ public function addNonceHeaders(array $cspNonces) $serializedNonces = implode(" ", $cspNonces); $cspDirective = self::CSP_DIRECTIVE; $cspValue = "{$cspDirective} {$serializedNonces};"; - foreach(self::CSP_HEADERS as $cspHeader) { + foreach (self::CSP_HEADERS as $cspHeader) { Craft::$app->getResponse()->getHeaders()->add($cspHeader, $cspValue); } } diff --git a/src/base/NonceItem.php b/src/base/NonceItem.php index 01fb967b8..19affb8dd 100644 --- a/src/base/NonceItem.php +++ b/src/base/NonceItem.php @@ -81,11 +81,11 @@ public function fields() public function generateNonce() { $result = null; - try { - $result = bin2hex(random_bytes(22)); - } catch (\Exception $e) { - // That's okay - } + try { + $result = bin2hex(random_bytes(22)); + } catch (\Exception $e) { + // That's okay + } return $result; } diff --git a/src/base/NonceItemInterface.php b/src/base/NonceItemInterface.php index a10be4e9a..96776df9f 100644 --- a/src/base/NonceItemInterface.php +++ b/src/base/NonceItemInterface.php @@ -18,7 +18,6 @@ */ interface NonceItemInterface { - // Constants // ========================================================================= diff --git a/src/base/SeoElementInterface.php b/src/base/SeoElementInterface.php index 70825cda0..d909b4f91 100644 --- a/src/base/SeoElementInterface.php +++ b/src/base/SeoElementInterface.php @@ -11,11 +11,11 @@ namespace nystudio107\seomatic\base; -use nystudio107\seomatic\models\MetaBundle; - use craft\base\ElementInterface; + use craft\base\Model; use craft\elements\db\ElementQueryInterface; +use nystudio107\seomatic\models\MetaBundle; /** * @author nystudio107 diff --git a/src/base/SitemapInterface.php b/src/base/SitemapInterface.php index 9ddb4666d..2ba68aaca 100644 --- a/src/base/SitemapInterface.php +++ b/src/base/SitemapInterface.php @@ -18,7 +18,6 @@ */ interface SitemapInterface { - // Constants // ========================================================================= diff --git a/src/base/VarsModel.php b/src/base/VarsModel.php index 36c264721..a08919e70 100644 --- a/src/base/VarsModel.php +++ b/src/base/VarsModel.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\base; -use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; - use Craft; +use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; + /** * @author nystudio107 * @package Seomatic diff --git a/src/config.php b/src/config.php index fa04cbac2..c79d53b68 100644 --- a/src/config.php +++ b/src/config.php @@ -70,7 +70,7 @@ 'sidebarDisplayPreviewTypes' => [ 'google', 'twitter', - 'facebook' + 'facebook', ], // Should SEOmatic display the SEO Analysis sidebar? @@ -163,5 +163,5 @@ // string[] URL params that are allowed to be considered part of the unique URL used for the metadata cache 'allowedUrlParams' => [ - ] + ], ]; diff --git a/src/controllers/ContentSeoController.php b/src/controllers/ContentSeoController.php index b2b959b97..68b9b39d5 100644 --- a/src/controllers/ContentSeoController.php +++ b/src/controllers/ContentSeoController.php @@ -68,8 +68,7 @@ public function actionMetaBundles( int $per_page = 20, $filter = '', $siteId = 0 - ): Response - { + ): Response { $data = []; $sortField = 'sourceName'; $sortType = 'ASC'; diff --git a/src/controllers/FileController.php b/src/controllers/FileController.php index 43315dfa6..006df7bc6 100644 --- a/src/controllers/FileController.php +++ b/src/controllers/FileController.php @@ -11,17 +11,15 @@ namespace nystudio107\seomatic\controllers; -use nystudio107\seomatic\helpers\UrlHelper; -use nystudio107\seomatic\Seomatic; - use Craft; -use craft\elements\Asset; use craft\helpers\FileHelper; -use craft\helpers\Assets as AssetsHelper; + use craft\web\Controller; +use nystudio107\seomatic\helpers\UrlHelper; +use nystudio107\seomatic\Seomatic; -use yii\web\NotFoundHttpException; use yii\web\HttpException; +use yii\web\NotFoundHttpException; use yii\web\Response; use yii\web\ServerErrorHttpException; @@ -87,7 +85,7 @@ public function actionSeoFileLink($url, $robots = '', $canonical = '', $inline = } // Add the Link header if (!empty($canonical)) { - $headerValue = '<'.$canonical.'>; rel="canonical"'; + $headerValue = '<' . $canonical . '>; rel="canonical"'; $response->headers->add('Link', $headerValue); } // Ensure the file type is allowed @@ -105,7 +103,7 @@ public function actionSeoFileLink($url, $robots = '', $canonical = '', $inline = $fileName, [ 'inline' => $inline, - 'mimeType' => FileHelper::getMimeTypeByExtension($fileName) + 'mimeType' => FileHelper::getMimeTypeByExtension($fileName), ] ); } else { diff --git a/src/controllers/FrontendTemplateController.php b/src/controllers/FrontendTemplateController.php index 127a970e7..b3a3477d5 100644 --- a/src/controllers/FrontendTemplateController.php +++ b/src/controllers/FrontendTemplateController.php @@ -9,12 +9,12 @@ namespace nystudio107\seomatic\controllers; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\services\FrontendTemplates; - use Craft; use craft\web\Controller; +use nystudio107\seomatic\Seomatic; +use nystudio107\seomatic\services\FrontendTemplates; + use yii\web\Response; /** @@ -99,5 +99,4 @@ public function actionSecurity(): Response return $this->asRaw($text); } - } diff --git a/src/controllers/MetaContainerController.php b/src/controllers/MetaContainerController.php index 1608e8bbc..c58b00f8d 100644 --- a/src/controllers/MetaContainerController.php +++ b/src/controllers/MetaContainerController.php @@ -9,21 +9,21 @@ namespace nystudio107\seomatic\controllers; -use nystudio107\seomatic\Seomatic; +use Craft; +use craft\web\Controller; use nystudio107\seomatic\helpers\Container as ContainerHelper; use nystudio107\seomatic\models\FrontendTemplateContainer; use nystudio107\seomatic\models\MetaJsonLdContainer; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\models\MetaSiteVars; -use nystudio107\seomatic\models\MetaTitleContainer; use nystudio107\seomatic\models\MetaTagContainer; -use Craft; -use craft\web\Controller; +use nystudio107\seomatic\models\MetaTitleContainer; +use nystudio107\seomatic\Seomatic; -use yii\web\Response; use yii\web\JsonResponseFormatter; +use yii\web\Response; /** * @author nystudio107 @@ -302,5 +302,4 @@ public function actionFrontendTemplateContainer(string $uri, int $siteId = null, return $this->asJson($result); } - } diff --git a/src/controllers/SettingsController.php b/src/controllers/SettingsController.php index 44163b597..db36ba770 100644 --- a/src/controllers/SettingsController.php +++ b/src/controllers/SettingsController.php @@ -603,8 +603,7 @@ public function actionEditContent( string $siteHandle = null, $typeId = null, $loadFromSiteHandle = null - ): Response - { + ): Response { $variables = []; // @TODO: Let people choose an entry/categorygroup/product as the preview // Get the site to edit @@ -757,8 +756,7 @@ protected function setContentFieldSourceVariables( string $sourceHandle, string $groupName, array &$variables - ) - { + ) { $variables['textFieldSources'] = array_merge( ['entryGroup' => ['optgroup' => $groupName . ' Fields'], 'title' => 'Title'], FieldHelper::fieldsOfTypeFromSource( @@ -1009,7 +1007,7 @@ public function actionSaveSite(): Response $siteSettings['creator'] = $metaBundle->metaSiteVars->creator; } if (!empty($siteSettings['additionalSitemapUrls'])) { - $siteSettings['additionalSitemapUrlsDateUpdated'] = new DateTime; + $siteSettings['additionalSitemapUrlsDateUpdated'] = new DateTime(); Seomatic::$plugin->sitemaps->submitCustomSitemap($siteId); } $metaBundle->metaSiteVars->setAttributes($siteSettings); @@ -1147,7 +1145,7 @@ public function actionTracking(string $subSection = 'gtag', string $siteHandle = // Add in the variables to the autocomplete cache so they can be accessed across requests $subSectionSettings = $variables['scripts'][$subSection]; $variables['codeEditorOptions'] = [ - TrackingVarsAutocomplete::OPTIONS_DATA_KEY => $subSectionSettings->vars + TrackingVarsAutocomplete::OPTIONS_DATA_KEY => $subSectionSettings->vars, ]; // Plugin and section settings $pluginName = Seomatic::$settings->pluginName; diff --git a/src/controllers/SitemapController.php b/src/controllers/SitemapController.php index 030dee51f..12c9e78f9 100644 --- a/src/controllers/SitemapController.php +++ b/src/controllers/SitemapController.php @@ -9,12 +9,12 @@ namespace nystudio107\seomatic\controllers; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\helpers\PluginTemplate; -use nystudio107\seomatic\services\Sitemaps; - use Craft; use craft\web\Controller; +use nystudio107\seomatic\helpers\PluginTemplate; + +use nystudio107\seomatic\Seomatic; +use nystudio107\seomatic\services\Sitemaps; use yii\web\Response; diff --git a/src/debug/panels/SeomaticPanel.php b/src/debug/panels/SeomaticPanel.php index 093b213e3..99ec3f036 100644 --- a/src/debug/panels/SeomaticPanel.php +++ b/src/debug/panels/SeomaticPanel.php @@ -24,7 +24,7 @@ class SeomaticPanel extends Panel const CONTAINER_PARSED_PROPERTIES = [ 'metaGlobalVars', 'metaSiteVars', - 'metaSitemapVars' + 'metaSitemapVars', ]; /** @@ -46,12 +46,11 @@ public function init(): void Event::on(MetaContainers::class, MetaContainers::EVENT_METABUNDLE_DEBUG_DATA, - function (MetaBundleDebugDataEvent $e) { + function(MetaBundleDebugDataEvent $e) { if ($e->metaBundle) { $this->metaBundles[$e->metaBundleCategory] = $e->metaBundle; } }); - } /** diff --git a/src/debug/views/seomatic/detail.php b/src/debug/views/seomatic/detail.php index 217de647d..d2fd96fbe 100644 --- a/src/debug/views/seomatic/detail.php +++ b/src/debug/views/seomatic/detail.php @@ -155,7 +155,7 @@ 'meta' => METABUNDLE_CONTAINERS[$metaContainerName], 'unparsed' => $panel->data[$metaBundleCategory]['unparsed']['metaContainers'][$metaContainerName]['data'] ?? [], 'parsed' => $panel->data[$metaBundleCategory]['parsed']['metaContainers'][$metaContainerName]['data'] ?? [], - ] + ], ]); $editorLanguage = 'html'; if ($metaContainerName === 'MetaJsonLdContainergeneral') { @@ -167,7 +167,7 @@ 'id' => $sectionName . '-' . $metaBundleCategory . '-' . $metaContainerName . '-rendered-tags', 'view' => $this, 'language' => $editorLanguage, - ] + ], ]); } break; @@ -180,7 +180,7 @@ 'meta' => $varsMeta, 'unparsed' => $panel->data[$metaBundleCategory]['unparsed'][$varName] ?? [], 'parsed' => $panel->data[$metaBundleCategory]['parsed'][$varName] ?? [], - ] + ], ]); } break; @@ -205,10 +205,10 @@ 'data-toggle' => 'tab', 'role' => 'tab', 'aria-controls' => "r-tab-{$sectionName}", - 'aria-selected' => $firstLoop ? 'true' : 'false' + 'aria-selected' => $firstLoop ? 'true' : 'false', ]), [ - 'class' => 'nav-item' + 'class' => 'nav-item', ] ); ?> @@ -235,10 +235,10 @@ 'data-toggle' => 'tab', 'role' => 'tab', 'aria-controls' => "r-tab-{$sectionName}-{$k}", - 'aria-selected' => $k === 0 ? 'true' : 'false' + 'aria-selected' => $k === 0 ? 'true' : 'false', ]), [ - 'class' => 'nav-item' + 'class' => 'nav-item', ] ); } diff --git a/src/debug/views/seomatic/render-tag.php b/src/debug/views/seomatic/render-tag.php index 2063c09d8..c63dc47c9 100644 --- a/src/debug/views/seomatic/render-tag.php +++ b/src/debug/views/seomatic/render-tag.php @@ -41,7 +41,9 @@ $subValue): ?> - + render('render-copy-menu', [ 'value' => $subValue ?? '', diff --git a/src/debug/views/seomatic/rendered-tags.php b/src/debug/views/seomatic/rendered-tags.php index b239c5fe1..525c0c38e 100644 --- a/src/debug/views/seomatic/rendered-tags.php +++ b/src/debug/views/seomatic/rendered-tags.php @@ -19,12 +19,12 @@ 'placeholderText' => '', 'wrapperClass' => 'monaco-editor-inline-frame', 'fixedHeightEditor' => false, - 'displayLanguageIcon' => true + 'displayLanguageIcon' => true, ]); $monacoOptions = Json::encode([ 'language' => $values['language'], 'domReadOnly' => true, - 'readOnly' => true + 'readOnly' => true, ]); $endpointAlias = Craft::getAlias('@codeEditorEndpointUrl'); $view->registerJs("makeMonacoEditor('{$codeEditorId}', 'CodeEditor', '{$monacoOptions}', '{$codeEditorOptions}', '{$endpointAlias}');"); diff --git a/src/debug/views/seomatic/tag-table.php b/src/debug/views/seomatic/tag-table.php index e2dc01e6f..bbfa062ac 100644 --- a/src/debug/views/seomatic/tag-table.php +++ b/src/debug/views/seomatic/tag-table.php @@ -32,11 +32,11 @@ ]) ?> render('render-tag', [ 'value' => $values['unparsed'][$name] ?? '', - 'meta' => $meta + 'meta' => $meta, ]) ?> render('render-tag', [ 'value' => $values['parsed'][$name] ?? '', - 'meta' => $meta + 'meta' => $meta, ]) ?> diff --git a/src/events/IncludeContainerEvent.php b/src/events/IncludeContainerEvent.php index 96bc004bf..4e28b3d5b 100644 --- a/src/events/IncludeContainerEvent.php +++ b/src/events/IncludeContainerEvent.php @@ -26,5 +26,5 @@ class IncludeContainerEvent extends Event /** * @var bool Whether to include the container. */ - public $include; + public $include; } diff --git a/src/fields/SeoSettings.php b/src/fields/SeoSettings.php index 2a769ae88..b22f14c21 100644 --- a/src/fields/SeoSettings.php +++ b/src/fields/SeoSettings.php @@ -254,7 +254,7 @@ public function serializeValue($value, ElementInterface $element = null) $value = StringHelper::encodeMb4($value); } if (\is_array($value)) { - array_walk_recursive($value, function (&$arrayValue, $arrayKey) { + array_walk_recursive($value, function(&$arrayValue, $arrayKey) { if ($arrayValue !== null && \is_string($arrayValue)) { $arrayValue = StringHelper::encodeMb4($arrayValue); } @@ -274,7 +274,7 @@ public function getSettingsHtml() $tagOptions = [ 'depends' => [ 'nystudio107\\seomatic\\assetbundles\\seomatic\\SeomaticAsset', - ] + ], ]; // JS/CSS modules try { @@ -308,7 +308,7 @@ public function getInputHtml($value, ElementInterface $element = null): string $tagOptions = [ 'depends' => [ 'nystudio107\\seomatic\\assetbundles\\seomatic\\SeomaticAsset', - ] + ], ]; // JS/CSS modules try { @@ -397,7 +397,7 @@ public function getTableAttributeHtml($value, ElementInterface $element): string $cacheDuration = null; $html = $cache->getOrSet( self::CACHE_KEY . $cacheKey, - function () use ($uri, $siteId, $element) { + function() use ($uri, $siteId, $element) { Seomatic::$plugin->metaContainers->previewMetaContainers($uri, $siteId, true); $variables = [ 'previewTypes' => [ @@ -436,8 +436,7 @@ protected function setContentFieldSourceVariables( Element $element, string $groupName, array &$variables - ) - { + ) { $variables['textFieldSources'] = array_merge( ['entryGroup' => ['optgroup' => $groupName . ' Fields'], 'title' => 'Title'], FieldHelper::fieldsOfTypeFromElement( diff --git a/src/fields/Seomatic_Meta.php b/src/fields/Seomatic_Meta.php index 08361f68b..45940030d 100644 --- a/src/fields/Seomatic_Meta.php +++ b/src/fields/Seomatic_Meta.php @@ -10,8 +10,8 @@ namespace nystudio107\seomatic\fields; use Craft; -use craft\base\Field; use craft\base\ElementInterface; +use craft\base\Field; use craft\helpers\Json; use yii\db\Schema; diff --git a/src/gql/arguments/FrontendContainerArguments.php b/src/gql/arguments/FrontendContainerArguments.php index 213147338..fc91954ce 100644 --- a/src/gql/arguments/FrontendContainerArguments.php +++ b/src/gql/arguments/FrontendContainerArguments.php @@ -33,19 +33,18 @@ public static function getArguments(): array 'siteId' => [ 'name' => 'siteId', 'type' => Type::int(), - 'description' => 'The site ID to fetch frontend containers for.' + 'description' => 'The site ID to fetch frontend containers for.', ], 'site' => [ 'name' => 'site', 'type' => Type::string(), - 'description' => 'The site handle to fetch frontend containers for.' + 'description' => 'The site handle to fetch frontend containers for.', ], 'type' => [ 'name' => 'type', 'type' => SeomaticFrontendTemplateType::getType(), - 'description' => 'The frontend container type.' + 'description' => 'The frontend container type.', ], ]; } } - diff --git a/src/gql/arguments/SeomaticArguments.php b/src/gql/arguments/SeomaticArguments.php index 09e3d9b73..79f8dd188 100644 --- a/src/gql/arguments/SeomaticArguments.php +++ b/src/gql/arguments/SeomaticArguments.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\gql\arguments; -use nystudio107\seomatic\gql\types\SeomaticEnvironmentType; - use craft\gql\base\Arguments; + use GraphQL\Type\Definition\Type; +use nystudio107\seomatic\gql\types\SeomaticEnvironmentType; /** * Class SeomaticArguments @@ -34,22 +34,22 @@ public static function getArguments(): array 'uri' => [ 'name' => 'uri', 'type' => Type::string(), - 'description' => 'The URI to resolve the SEOmatic metdata for.' + 'description' => 'The URI to resolve the SEOmatic metdata for.', ], 'siteId' => [ 'name' => 'siteId', 'type' => Type::int(), - 'description' => 'Optional - The site ID to resolve the SEOmatic metdata for.' + 'description' => 'Optional - The site ID to resolve the SEOmatic metdata for.', ], 'site' => [ 'name' => 'site', 'type' => Type::string(), - 'description' => 'Optional - The site handle to resolve the SEOmatic metdata for.' + 'description' => 'Optional - The site handle to resolve the SEOmatic metdata for.', ], 'asArray' => [ 'name' => 'asArray', 'type' => Type::boolean(), - 'description' => 'Whether the meta items should be returned as an array or as pre-rendered tag text.' + 'description' => 'Whether the meta items should be returned as an array or as pre-rendered tag text.', ], 'environment' => SeomaticEnvironmentType::getType(), ]; diff --git a/src/gql/arguments/SitemapArguments.php b/src/gql/arguments/SitemapArguments.php index db0260036..fdac57800 100644 --- a/src/gql/arguments/SitemapArguments.php +++ b/src/gql/arguments/SitemapArguments.php @@ -32,29 +32,28 @@ public static function getArguments(): array 'filename' => [ 'name' => 'filename', 'type' => Type::string(), - 'description' => 'Optional - the sitemap filename.' + 'description' => 'Optional - the sitemap filename.', ], 'siteId' => [ 'name' => 'siteId', 'type' => Type::int(), - 'description' => 'Optional - The site ID to list the sitemaps for.' + 'description' => 'Optional - The site ID to list the sitemaps for.', ], 'site' => [ 'name' => 'site', 'type' => Type::string(), - 'description' => 'Optional - The site handle to list the sitemaps for.' + 'description' => 'Optional - The site handle to list the sitemaps for.', ], 'sourceBundleType' => [ 'name' => 'sourceBundleType', 'type' => Type::string(), - 'description' => 'Optional - The source bundle type to get the sitemaps for.' + 'description' => 'Optional - The source bundle type to get the sitemaps for.', ], 'sourceBundleHandle' => [ 'name' => 'sourceBundleHandle', 'type' => Type::string(), - 'description' => 'Optional - The source bundles handle to get the sitemap for.' + 'description' => 'Optional - The source bundles handle to get the sitemap for.', ], ]; } } - diff --git a/src/gql/arguments/SitemapIndexArguments.php b/src/gql/arguments/SitemapIndexArguments.php index da80a5f55..14cba530e 100644 --- a/src/gql/arguments/SitemapIndexArguments.php +++ b/src/gql/arguments/SitemapIndexArguments.php @@ -32,14 +32,13 @@ public static function getArguments(): array 'siteId' => [ 'name' => 'siteId', 'type' => Type::int(), - 'description' => 'Optional - The site ID to resolve the sitemap for.' + 'description' => 'Optional - The site ID to resolve the sitemap for.', ], 'site' => [ 'name' => 'site', 'type' => Type::string(), - 'description' => 'Optional - The site handle to resolve the sitemap for.' + 'description' => 'Optional - The site handle to resolve the sitemap for.', ], ]; } } - diff --git a/src/gql/interfaces/SeomaticInterface.php b/src/gql/interfaces/SeomaticInterface.php index e97682f18..3ab20aaa0 100644 --- a/src/gql/interfaces/SeomaticInterface.php +++ b/src/gql/interfaces/SeomaticInterface.php @@ -11,28 +11,28 @@ namespace nystudio107\seomatic\gql\interfaces; +use craft\gql\base\InterfaceType as BaseInterfaceType; +use craft\gql\GqlEntityRegistry; +use GraphQL\Type\Definition\InterfaceType; +use GraphQL\Type\Definition\Type; use nystudio107\seomatic\gql\arguments\FrontendContainerArguments; use nystudio107\seomatic\gql\arguments\SitemapArguments; + use nystudio107\seomatic\gql\arguments\SitemapIndexArguments; use nystudio107\seomatic\gql\resolvers\FrontendContainerResolver; use nystudio107\seomatic\gql\resolvers\SitemapResolver; -use nystudio107\seomatic\gql\types\generators\SeomaticGenerator; - use nystudio107\seomatic\gql\types\FileContentsType; +use nystudio107\seomatic\gql\types\generators\SeomaticGenerator; use nystudio107\seomatic\models\FrontendTemplateContainer; use nystudio107\seomatic\models\MetaJsonLdContainer; use nystudio107\seomatic\models\MetaLinkContainer; + use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\models\MetaSiteVars; + use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\models\MetaTitleContainer; -use craft\gql\base\InterfaceType as BaseInterfaceType; -use craft\gql\GqlEntityRegistry; - -use GraphQL\Type\Definition\InterfaceType; -use GraphQL\Type\Definition\Type; - /** * Class SeomaticInterface * @@ -78,9 +78,9 @@ public static function getType($fields = null): Type $type = GqlEntityRegistry::createEntity(self::class, new InterfaceType([ 'name' => static::getName(), - 'fields' => self::class.'::getFieldDefinitions', + 'fields' => self::class . '::getFieldDefinitions', 'description' => 'This is the interface implemented by SEOmatic.', - 'resolveType' => function (array $value) { + 'resolveType' => function(array $value) { return GqlEntityRegistry::getEntity(SeomaticGenerator::getName()); }, ])); @@ -104,11 +104,10 @@ public static function getFieldDefinitions(): array { $fields = []; foreach (self::GRAPH_QL_FIELDS as $key => $value) { - $fields[$key] = [ 'name' => $key, 'type' => Type::string(), - 'description' => 'The '.$value.' SEOmatic container.', + 'description' => 'The ' . $value . ' SEOmatic container.', ]; if (isset(self::DEPRECATED_GRAPH_QL_FIELDS[$key])) { $fields[$key]['deprecationReason'] = self::DEPRECATED_GRAPH_QL_FIELDS[$key]; @@ -119,27 +118,27 @@ public static function getFieldDefinitions(): array 'name' => 'sitemaps', 'args' => SitemapArguments::getArguments(), 'type' => Type::listOf(FileContentsType::getType()), - 'resolve' => SitemapResolver::class .'::getSitemaps' + 'resolve' => SitemapResolver::class . '::getSitemaps', ]; $fields['sitemapIndexes'] = [ 'name' => 'sitemapIndexes', 'args' => SitemapIndexArguments::getArguments(), 'type' => Type::listOf(FileContentsType::getType()), - 'resolve' => SitemapResolver::class .'::getSitemapIndexes' + 'resolve' => SitemapResolver::class . '::getSitemapIndexes', ]; $fields['sitemapStyles'] = [ 'name' => 'sitemapStyles', 'type' => FileContentsType::getType(), - 'resolve' => SitemapResolver::class .'::getSitemapStyles' + 'resolve' => SitemapResolver::class . '::getSitemapStyles', ]; $fields['frontendTemplates'] = [ 'name' => 'frontendTemplates', 'args' => FrontendContainerArguments::getArguments(), 'type' => Type::listOf(FileContentsType::getType()), - 'resolve' => FrontendContainerResolver::class .'::getContainerFiles' + 'resolve' => FrontendContainerResolver::class . '::getContainerFiles', ]; return $fields; diff --git a/src/gql/queries/SeomaticQuery.php b/src/gql/queries/SeomaticQuery.php index 070d39bd2..9d0a96219 100644 --- a/src/gql/queries/SeomaticQuery.php +++ b/src/gql/queries/SeomaticQuery.php @@ -11,12 +11,12 @@ namespace nystudio107\seomatic\gql\queries; +use craft\gql\base\Query; use nystudio107\seomatic\gql\arguments\SeomaticArguments; use nystudio107\seomatic\gql\interfaces\SeomaticInterface; use nystudio107\seomatic\gql\resolvers\SeomaticResolver; -use nystudio107\seomatic\helpers\Gql as GqlHelper; -use craft\gql\base\Query; +use nystudio107\seomatic\helpers\Gql as GqlHelper; /** * Class SeomaticQuery @@ -41,7 +41,7 @@ public static function getQueries($checkToken = true): array 'type' => SeomaticInterface::getType(), 'args' => SeomaticArguments::getArguments(), 'resolve' => SeomaticResolver::class . '::resolve', - 'description' => 'This query is used to query for SEOmatic meta data.' + 'description' => 'This query is used to query for SEOmatic meta data.', ], ]; } diff --git a/src/gql/resolvers/FrontendContainerResolver.php b/src/gql/resolvers/FrontendContainerResolver.php index 3fc71c704..d19306ac0 100644 --- a/src/gql/resolvers/FrontendContainerResolver.php +++ b/src/gql/resolvers/FrontendContainerResolver.php @@ -26,7 +26,6 @@ */ class FrontendContainerResolver { - // Public Methods // ========================================================================= @@ -53,14 +52,14 @@ public static function getContainerFiles($source, array $arguments, $context, Re if (!empty($arguments['type'])) { $containerItems = [ - $arguments['type'] => $containerItems[$arguments['type']] ?? [] + $arguments['type'] => $containerItems[$arguments['type']] ?? [], ]; } - array_walk($containerItems, function (&$contents, $type) use ($typeMap) { + array_walk($containerItems, function(&$contents, $type) use ($typeMap) { $contents = [ 'filename' => $typeMap[$type], - 'contents' => $contents + 'contents' => $contents, ]; }); diff --git a/src/gql/resolvers/SeomaticResolver.php b/src/gql/resolvers/SeomaticResolver.php index 5433c8898..b606d185c 100644 --- a/src/gql/resolvers/SeomaticResolver.php +++ b/src/gql/resolvers/SeomaticResolver.php @@ -11,17 +11,17 @@ namespace nystudio107\seomatic\gql\resolvers; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\gql\interfaces\SeomaticInterface; -use nystudio107\seomatic\helpers\Gql as GqlHelper; -use nystudio107\seomatic\helpers\Container as ContainerHelper; - use craft\base\Element; use craft\gql\base\Resolver; use craft\helpers\Json; - use GraphQL\Type\Definition\ResolveInfo; +use nystudio107\seomatic\gql\interfaces\SeomaticInterface; +use nystudio107\seomatic\helpers\Container as ContainerHelper; +use nystudio107\seomatic\helpers\Gql as GqlHelper; + +use nystudio107\seomatic\Seomatic; + /** * Class SeomaticResolver * @@ -31,7 +31,6 @@ */ class SeomaticResolver extends Resolver { - // Public Methods // ========================================================================= diff --git a/src/gql/resolvers/SitemapResolver.php b/src/gql/resolvers/SitemapResolver.php index 20c094ce5..3b99efafb 100644 --- a/src/gql/resolvers/SitemapResolver.php +++ b/src/gql/resolvers/SitemapResolver.php @@ -11,15 +11,15 @@ namespace nystudio107\seomatic\gql\resolvers; +use Craft; +use GraphQL\Type\Definition\ResolveInfo; use nystudio107\seomatic\helpers\Gql as GqlHelper; use nystudio107\seomatic\helpers\PluginTemplate; use nystudio107\seomatic\models\SitemapCustomTemplate; -use nystudio107\seomatic\models\SitemapIndexTemplate; -use nystudio107\seomatic\models\SitemapTemplate; -use Craft; +use nystudio107\seomatic\models\SitemapIndexTemplate; -use GraphQL\Type\Definition\ResolveInfo; +use nystudio107\seomatic\models\SitemapTemplate; /** * Class SitemapResolver @@ -30,7 +30,6 @@ */ class SitemapResolver { - // Public Methods // ========================================================================= @@ -42,7 +41,7 @@ public static function getSitemaps($source, array $arguments, $context, ResolveI // If there's a filename provided, return the sitemap. if (!empty($arguments['filename'])) { return [ - self::getSitemapItemByFilename($arguments['filename']) + self::getSitemapItemByFilename($arguments['filename']), ]; } $siteId = GqlHelper::getSiteIdFromGqlArguments($arguments); @@ -53,11 +52,11 @@ public static function getSitemaps($source, array $arguments, $context, ResolveI } // If either of the source bundle arguments are present, get the sitemap - if (!empty($arguments['sourceBundleType']) || !empty($arguments['sourceBundleHandle'])) { + if (!empty($arguments['sourceBundleType']) || !empty($arguments['sourceBundleHandle'])) { $filename = self::createFilenameFromComponents($site->groupId, $arguments['sourceBundleType'] ?? '', $arguments['sourceBundleHandle'] ?? '', $siteId); return [ - self::getSitemapItemByFilename($filename) + self::getSitemapItemByFilename($filename), ]; } @@ -74,7 +73,6 @@ public static function getSitemaps($source, array $arguments, $context, ResolveI foreach ($sitemapIndexItems as $sitemapIndexItem) { $contents = $sitemapIndexItem['contents']; if (preg_match_all('/(.*?)<\/loc>/m', $contents, $matches)) { - foreach ($matches[1] as $url) { $parts = explode('/', $url); $filename = end($parts); @@ -106,22 +104,22 @@ public static function getSitemapIndexes($source, $arguments, $context, ResolveI $sitemapIndexListEntry = self::getSitemapIndexListEntry($siteId, $groupId); return [ - $sitemapIndexListEntry + $sitemapIndexListEntry, ]; } -/** - * Get all the sitemap index items by params. - * - * @param array $params - * @return array - * @throws \yii\web\NotFoundHttpException - */ + /** + * Get all the sitemap index items by params. + * + * @param array $params + * @return array + * @throws \yii\web\NotFoundHttpException + */ public static function getSitemapStyles($source, $arguments, $context, ResolveInfo $resolveInfo): array { return [ 'filename' => 'sitemap.xsl', - 'contents' => $xml = PluginTemplate::renderPluginTemplate('_frontend/pages/sitemap-styles.twig', []) + 'contents' => $xml = PluginTemplate::renderPluginTemplate('_frontend/pages/sitemap-styles.twig', []), ]; } @@ -137,7 +135,7 @@ protected static function getSitemapIndexListEntry($siteId, $groupId): array 'filename' => $sitemapIndex->getFilename($groupId), 'contents' => $sitemapIndex->render([ 'siteId' => $siteId, - 'groupId' => $groupId + 'groupId' => $groupId, ]), ]; @@ -163,7 +161,7 @@ protected static function getSitemapItemByFilename($filename) return [ 'filename' => $filename, - 'contents' => $sitemap->render(array_merge($matches, ['immediately' => true])) + 'contents' => $sitemap->render(array_merge($matches, ['immediately' => true])), ]; } diff --git a/src/gql/types/FileContentsType.php b/src/gql/types/FileContentsType.php index 725556da5..d90e33d85 100644 --- a/src/gql/types/FileContentsType.php +++ b/src/gql/types/FileContentsType.php @@ -83,7 +83,7 @@ public static function getFieldDefinition(): array 'contents' => [ 'name' => 'contents', 'type' => Type::string(), - ] + ], ]; return TypeManager::prepareFieldDefinitions($fields, self::getName()); diff --git a/src/gql/types/SeomaticEnvironmentType.php b/src/gql/types/SeomaticEnvironmentType.php index 133d9055b..a90f3848b 100644 --- a/src/gql/types/SeomaticEnvironmentType.php +++ b/src/gql/types/SeomaticEnvironmentType.php @@ -11,12 +11,12 @@ namespace nystudio107\seomatic\gql\types; -use nystudio107\seomatic\helpers\Environment; - use craft\gql\GqlEntityRegistry; use GraphQL\Type\Definition\EnumType; +use nystudio107\seomatic\helpers\Environment; + /** * Class SeomaticEnvironmentType * @@ -26,7 +26,6 @@ */ class SeomaticEnvironmentType extends EnumType { - /** * @var string */ @@ -48,17 +47,17 @@ public function __construct($config) 'values' => [ Environment::SEOMATIC_DEV_ENV => [ 'value' => Environment::SEOMATIC_DEV_ENV, - 'description' => 'Local Development environment, with debugging enabled and indexing disabled' + 'description' => 'Local Development environment, with debugging enabled and indexing disabled', ], Environment::SEOMATIC_STAGING_ENV => [ 'value' => Environment::SEOMATIC_STAGING_ENV, - 'description' => 'Staging environment, with indexing disabled' + 'description' => 'Staging environment, with indexing disabled', ], Environment::SEOMATIC_PRODUCTION_ENV => [ 'value' => Environment::SEOMATIC_PRODUCTION_ENV, - 'description' => 'Live production environment, with indexing enabled' + 'description' => 'Live production environment, with indexing enabled', ], - ] + ], ]); parent::__construct($config); } diff --git a/src/gql/types/SeomaticFrontendTemplateType.php b/src/gql/types/SeomaticFrontendTemplateType.php index d1063b66d..714396a1a 100644 --- a/src/gql/types/SeomaticFrontendTemplateType.php +++ b/src/gql/types/SeomaticFrontendTemplateType.php @@ -24,7 +24,6 @@ */ class SeomaticFrontendTemplateType extends EnumType { - /** * @var string */ @@ -45,21 +44,21 @@ public function __construct($config) 'values' => [ FrontendTemplates::HUMANS_TXT_HANDLE => [ 'value' => FrontendTemplates::HUMANS_TXT_HANDLE, - 'description' => 'The humans.txt file' + 'description' => 'The humans.txt file', ], FrontendTemplates::ROBOTS_TXT_HANDLE => [ 'value' => FrontendTemplates::ROBOTS_TXT_HANDLE, - 'description' => 'The robots.txt file' + 'description' => 'The robots.txt file', ], FrontendTemplates::ADS_TXT_HANDLE => [ 'value' => FrontendTemplates::ADS_TXT_HANDLE, - 'description' => 'The ads.txt file' + 'description' => 'The ads.txt file', ], FrontendTemplates::SECURITY_TXT_HANDLE => [ 'value' => FrontendTemplates::SECURITY_TXT_HANDLE, - 'description' => 'The security.txt file' + 'description' => 'The security.txt file', ], - ] + ], ]); parent::__construct($config); } diff --git a/src/gql/types/SeomaticType.php b/src/gql/types/SeomaticType.php index 30c9e8bc1..abd68902a 100644 --- a/src/gql/types/SeomaticType.php +++ b/src/gql/types/SeomaticType.php @@ -11,12 +11,12 @@ namespace nystudio107\seomatic\gql\types; -use nystudio107\seomatic\gql\interfaces\SeomaticInterface; - use craft\gql\base\ObjectType; use GraphQL\Type\Definition\ResolveInfo; +use nystudio107\seomatic\gql\interfaces\SeomaticInterface; + /** * Class SeomaticType * diff --git a/src/gql/types/generators/SeomaticGenerator.php b/src/gql/types/generators/SeomaticGenerator.php index 112daa658..f073fe75c 100644 --- a/src/gql/types/generators/SeomaticGenerator.php +++ b/src/gql/types/generators/SeomaticGenerator.php @@ -11,14 +11,14 @@ namespace nystudio107\seomatic\gql\types\generators; -use nystudio107\seomatic\gql\arguments\SeomaticArguments; -use nystudio107\seomatic\gql\interfaces\SeomaticInterface; -use nystudio107\seomatic\gql\types\SeomaticType; - use craft\gql\base\GeneratorInterface; use craft\gql\GqlEntityRegistry; use craft\gql\TypeLoader; +use nystudio107\seomatic\gql\arguments\SeomaticArguments; +use nystudio107\seomatic\gql\interfaces\SeomaticInterface; +use nystudio107\seomatic\gql\types\SeomaticType; + /** * Class SeomaticGenerator * @@ -40,17 +40,17 @@ public static function generateTypes($context = null): array $seomaticType = GqlEntityRegistry::getEntity($typeName) ?: GqlEntityRegistry::createEntity($typeName, new SeomaticType([ 'name' => $typeName, - 'args' => function () use ($seomaticArgs) { + 'args' => function() use ($seomaticArgs) { return $seomaticArgs; }, - 'fields' => function () use ($seomaticFields) { + 'fields' => function() use ($seomaticFields) { return $seomaticFields; }, 'description' => 'This entity has all the SEOmatic fields', ])); $gqlTypes[$typeName] = $seomaticType; - TypeLoader::registerType($typeName, function () use ($seomaticType) { + TypeLoader::registerType($typeName, function() use ($seomaticType) { return $seomaticType; }); diff --git a/src/helpers/Config.php b/src/helpers/Config.php index b126e09d3..89cbf7432 100644 --- a/src/helpers/Config.php +++ b/src/helpers/Config.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\helpers; -use nystudio107\seomatic\Seomatic; - use Craft; + use craft\helpers\StringHelper; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 diff --git a/src/helpers/Container.php b/src/helpers/Container.php index 5c006af0c..376600a10 100644 --- a/src/helpers/Container.php +++ b/src/helpers/Container.php @@ -48,8 +48,7 @@ public static function getContainerArrays( string $uri, int $siteId = null, bool $asArray = false - ): array - { + ): array { // Normalize the incoming URI to account for `__home__` $uri = ($uri === '__home__') ? '' : $uri; // Determine the siteId @@ -95,7 +94,7 @@ public static function getContainerArrays( $cache = Craft::$app->getCache(); $result = $cache->getOrSet( self::CACHE_KEY . $cacheKey, - function () use ($uri, $siteId, $containerKeys, $asArray) { + function() use ($uri, $siteId, $containerKeys, $asArray) { $result = []; Craft::info( 'Meta controller container cache miss: ' . $uri . '/' . $siteId, diff --git a/src/helpers/DynamicMeta.php b/src/helpers/DynamicMeta.php index 5b86b639c..f9aa56ed9 100644 --- a/src/helpers/DynamicMeta.php +++ b/src/helpers/DynamicMeta.php @@ -42,7 +42,6 @@ use function is_array; use function is_string; - /** * @author nystudio107 * @package Seomatic @@ -389,7 +388,7 @@ public static function addMetaJsonLdBreadCrumbs(int $siteId = null) if ($lastElement && $element) { if ($lastElement->uri !== '__home__' && $element->uri) { $path = $lastElement->uri; - $segments = array_values(array_filter(explode('/', $path), function ($segment) { + $segments = array_values(array_filter(explode('/', $path), function($segment) { return $segment !== ''; })); } @@ -459,7 +458,6 @@ public static function addMetaLinkHrefLang(string $uri = null, int $siteId = nul if ($siteLocalizedUrl['primary'] && Seomatic::$settings->addXDefaultHrefLang) { $metaTag->hreflang[] = 'x-default'; $metaTag->href[] = $siteLocalizedUrl['url']; - } } Seomatic::$plugin->link->add($metaTag); diff --git a/src/helpers/Environment.php b/src/helpers/Environment.php index 52fdb1d33..46233259e 100644 --- a/src/helpers/Environment.php +++ b/src/helpers/Environment.php @@ -32,7 +32,7 @@ class Environment 'dev', 'development', 'loc', - 'local' + 'local', ]; const STAGING_ENVIRONMENTS = [ @@ -43,7 +43,7 @@ class Environment 'uat', 'acc', 'acceptance', - 'sandbox' + 'sandbox', ]; const PRODUCTION_ENVIRONMENTS = [ @@ -51,7 +51,7 @@ class Environment 'prod', 'production', 'pub', - 'public' + 'public', ]; // Static Methods diff --git a/src/helpers/Field.php b/src/helpers/Field.php index 6a466319b..e8e17cd83 100644 --- a/src/helpers/Field.php +++ b/src/helpers/Field.php @@ -11,33 +11,33 @@ namespace nystudio107\seomatic\helpers; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\fields\SeoSettings as SeoSettingsField; -use nystudio107\seomatic\fields\Seomatic_Meta as Seomatic_MetaField; -use nystudio107\seomatic\services\MetaBundles; - +use benf\neo\elements\Block as NeoBlock; +use benf\neo\Field as NeoField; +use besteadfast\preparsefield\fields\PreparseFieldType; use Craft; + use craft\base\Element; use craft\base\Field as BaseField; use craft\base\Volume; -use craft\elements\User; use craft\ckeditor\Field as CKEditorField; use craft\elements\MatrixBlock; +use craft\elements\User; use craft\fields\Assets as AssetsField; use craft\fields\Matrix as MatrixField; use craft\fields\PlainText as PlainTextField; use craft\fields\Tags as TagsField; use craft\models\FieldLayout; use craft\redactor\Field as RedactorField; +use nystudio107\seomatic\fields\Seomatic_Meta as Seomatic_MetaField; + +use nystudio107\seomatic\fields\SeoSettings as SeoSettingsField; +use nystudio107\seomatic\Seomatic; +use nystudio107\seomatic\services\MetaBundles; use verbb\doxter\fields\Doxter as DoxterField; -use verbb\supertable\fields\SuperTableField; use verbb\supertable\elements\SuperTableBlockElement as SuperTableBlock; -use benf\neo\Field as NeoField; -use benf\neo\elements\Block as NeoBlock; - -use besteadfast\preparsefield\fields\PreparseFieldType; +use verbb\supertable\fields\SuperTableField; use yii\base\InvalidConfigException; @@ -58,7 +58,7 @@ class Field const OLD_SEOMATIC_META_CLASS_KEY = 'Seomatic_Meta'; const FIELD_CLASSES = [ - self::TEXT_FIELD_CLASS_KEY => [ + self::TEXT_FIELD_CLASS_KEY => [ CKEditorField::class, PlainTextField::class, MatrixField::class, @@ -129,7 +129,7 @@ public static function fieldsOfTypeFromLayout( $foundFields = []; if (!empty(self::FIELD_CLASSES[$fieldClassKey])) { // Cache me if you can - $memoKey = $fieldClassKey.$layout->id.($keysOnly ? 'keys' : 'nokeys'); + $memoKey = $fieldClassKey . $layout->id . ($keysOnly ? 'keys' : 'nokeys'); if (!empty(self::$fieldsOfTypeFromLayoutCache[$memoKey])) { return self::$fieldsOfTypeFromLayoutCache[$memoKey]; } @@ -245,8 +245,8 @@ public static function fieldsOfTypeFromGlobals(string $fieldClassKey, bool $keys // Prefix the keys with the global set name $prefix = $global->handle; $fields = array_combine( - array_map(function ($key) use ($prefix) { - return $prefix.'.'.$key; + array_map(function($key) use ($prefix) { + return $prefix . '.' . $key; }, array_keys($fields)), $fields ); @@ -320,7 +320,7 @@ public static function matrixFieldsOfType(MatrixBlock $matrixBlock, string $fiel } if ($matrixBlockTypeModel) { // Cache me if you can - $memoKey = $fieldType.$matrixBlock->id.($keysOnly ? 'keys' : 'nokeys'); + $memoKey = $fieldType . $matrixBlock->id . ($keysOnly ? 'keys' : 'nokeys'); if (!empty(self::$matrixFieldsOfTypeCache[$memoKey])) { return self::$matrixFieldsOfTypeCache[$memoKey]; } @@ -363,7 +363,7 @@ public static function neoFieldsOfType(NeoBlock $neoBlock, string $fieldType, bo } if ($neoBlockTypeModel) { // Cache me if you can - $memoKey = $fieldType.$neoBlock->id.($keysOnly ? 'keys' : 'nokeys'); + $memoKey = $fieldType . $neoBlock->id . ($keysOnly ? 'keys' : 'nokeys'); if (!empty(self::$neoFieldsOfTypeCache[$memoKey])) { return self::$neoFieldsOfTypeCache[$memoKey]; } @@ -405,7 +405,7 @@ public static function superTableFieldsOfType(SuperTableBlock $superTableBlock, } if ($superTableBlockTypeModel) { // Cache me if you can - $memoKey = $fieldType.$superTableBlock->id.($keysOnly ? 'keys' : 'nokeys'); + $memoKey = $fieldType . $superTableBlock->id . ($keysOnly ? 'keys' : 'nokeys'); if (!empty(self::$superTableFieldsOfTypeCache[$memoKey])) { return self::$superTableFieldsOfTypeCache[$memoKey]; } @@ -426,5 +426,4 @@ public static function superTableFieldsOfType(SuperTableBlock $superTableBlock, return $foundFields; } - } diff --git a/src/helpers/Gql.php b/src/helpers/Gql.php index e2808b173..769f5fb92 100644 --- a/src/helpers/Gql.php +++ b/src/helpers/Gql.php @@ -1,4 +1,5 @@ [ 'format' => null, 'quality' => self::SOCIAL_TRANSFORM_QUALITY, @@ -79,7 +79,7 @@ class ImageTransform ], ]; - static private $cachedAssetsElements = []; + private static $cachedAssetsElements = []; // Static Methods // ========================================================================= @@ -100,8 +100,7 @@ public static function socialTransform( $transformName = '', $siteId = null, $transformMode = null - ): string - { + ): string { $url = ''; $transform = self::createSocialTransform($transformName); // Let them override the mode @@ -179,8 +178,7 @@ public static function socialTransformWidth( $transformName = '', $siteId = null, $transformMode = null - ): string - { + ): string { $width = ''; $transform = self::createSocialTransform($transformName); // Let them override the mode @@ -211,8 +209,7 @@ public static function socialTransformHeight( $transformName = '', $siteId = null, $transformMode = null - ): string - { + ): string { $height = ''; $transform = self::createSocialTransform($transformName); // Let them override the mode diff --git a/src/helpers/JsonLd.php b/src/helpers/JsonLd.php index c59722485..d9e8a9caf 100644 --- a/src/helpers/JsonLd.php +++ b/src/helpers/JsonLd.php @@ -11,8 +11,8 @@ namespace nystudio107\seomatic\helpers; -use nystudio107\seomatic\Seomatic; use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 @@ -106,7 +106,7 @@ protected static function normalizeJsonLdArray(array &$array, int $depth) ); // Rename keys as appropriate foreach (self::AT_PREFIXED_ATTRIBUTES as $key) { - $array = self::changeKey($array, $key, '@'.$key); + $array = self::changeKey($array, $key, '@' . $key); } if ($depth > 1) { foreach (self::IGNORE_ATTRIBUTES as $attribute) { diff --git a/src/helpers/Localization.php b/src/helpers/Localization.php index 07e990f01..b0531b44b 100644 --- a/src/helpers/Localization.php +++ b/src/helpers/Localization.php @@ -35,7 +35,7 @@ public static function normalizeOgLocaleLanguage(string $language): string { $language = str_replace('-', '_', $language); if (strlen($language) === 2) { - $language = strtolower($language).'_'.strtoupper($language); + $language = strtolower($language) . '_' . strtoupper($language); } return $language; diff --git a/src/helpers/MetaValue.php b/src/helpers/MetaValue.php index 60f23c544..019891b39 100644 --- a/src/helpers/MetaValue.php +++ b/src/helpers/MetaValue.php @@ -91,8 +91,7 @@ public static function parseString( bool $resolveAliases = true, bool $parseAsTwig = true, $tries = self::MAX_PARSE_TRIES - ) - { + ) { // If it's a string, and there are no dynamic tags, just return the template if (is_string($metaValue) && !StringHelper::contains($metaValue, '{', false)) { return self::parseMetaString($metaValue, $resolveAliases, $parseAsTwig) ?? $metaValue; diff --git a/src/helpers/Migration.php b/src/helpers/Migration.php index dea481990..e65c28401 100644 --- a/src/helpers/Migration.php +++ b/src/helpers/Migration.php @@ -11,11 +11,10 @@ namespace nystudio107\seomatic\helpers; -use nystudio107\seomatic\helpers\Field as FieldHelper; -use nystudio107\seomatic\services\MetaBundles; - use craft\base\Element; +use nystudio107\seomatic\helpers\Field as FieldHelper; + /** * @author nystudio107 * @package Seomatic @@ -30,60 +29,60 @@ class Migration const SECTION_MIGRATION_CONTEXT = 'section'; const MIGRATION_CONTEXTS = [ - self::FIELD_MIGRATION_CONTEXT => [ - 'metaGlobalVars' => [ + self::FIELD_MIGRATION_CONTEXT => [ + 'metaGlobalVars' => [ 'mainEntityOfPage' => 'seoMainEntityOfPage', - 'seoTitle' => 'seoTitle', - 'seoDescription' => 'seoDescription', - 'seoKeywords' => 'seoKeywords', - 'canonicalUrl' => 'canonicalUrlOverride', - 'robots' => 'robots', - 'ogType' => 'openGraphType', + 'seoTitle' => 'seoTitle', + 'seoDescription' => 'seoDescription', + 'seoKeywords' => 'seoKeywords', + 'canonicalUrl' => 'canonicalUrlOverride', + 'robots' => 'robots', + 'ogType' => 'openGraphType', ], 'metaBundleSettings' => [ - 'siteType' => 'seoMainEntityCategory', - 'siteSubType' => 'seoMainEntityOfPage', - 'seoTitleSource' => 'seoTitleSource', - 'seoTitleField' => 'seoTitleSourceField', + 'siteType' => 'seoMainEntityCategory', + 'siteSubType' => 'seoMainEntityOfPage', + 'seoTitleSource' => 'seoTitleSource', + 'seoTitleField' => 'seoTitleSourceField', 'seoDescriptionSource' => 'seoDescriptionSource', - 'seoDescriptionField' => 'seoDescriptionSourceField', - 'seoKeywordsSource' => 'seoKeywordsSource', - 'seoKeywordsField' => 'seoKeywordsSourceField', - 'seoImageIds' => 'seoImageId', - 'seoImageSource' => 'seoImageIdSource', - 'seoImageField' => 'seoImageIdSourceField', - 'twitterImageIds' => 'seoTwitterImageId', - 'twitterImageSource' => 'seoTwitterImageIdSource', - 'twitterImageField' => 'seoTwitterImageIdSourceField', - 'ogImageIds' => 'seoFacebookImageId', - 'ogImageSource' => 'seoFacebookImageIdSource', - 'ogImageField' => 'seoFacebookImageIdSourceField', + 'seoDescriptionField' => 'seoDescriptionSourceField', + 'seoKeywordsSource' => 'seoKeywordsSource', + 'seoKeywordsField' => 'seoKeywordsSourceField', + 'seoImageIds' => 'seoImageId', + 'seoImageSource' => 'seoImageIdSource', + 'seoImageField' => 'seoImageIdSourceField', + 'twitterImageIds' => 'seoTwitterImageId', + 'twitterImageSource' => 'seoTwitterImageIdSource', + 'twitterImageField' => 'seoTwitterImageIdSourceField', + 'ogImageIds' => 'seoFacebookImageId', + 'ogImageSource' => 'seoFacebookImageIdSource', + 'ogImageField' => 'seoFacebookImageIdSourceField', ], ], self::SECTION_MIGRATION_CONTEXT => [ - 'metaGlobalVars' => [ + 'metaGlobalVars' => [ 'mainEntityOfPage' => 'seoMainEntityOfPage', - 'robots' => 'robots', - 'ogType' => 'openGraphType', + 'robots' => 'robots', + 'ogType' => 'openGraphType', ], 'metaBundleSettings' => [ - 'siteType' => 'seoMainEntityCategory', - 'siteSubType' => 'seoMainEntityOfPage', - 'seoTitleSource' => 'seoTitleSource', - 'seoTitleField' => 'seoTitleSourceField', + 'siteType' => 'seoMainEntityCategory', + 'siteSubType' => 'seoMainEntityOfPage', + 'seoTitleSource' => 'seoTitleSource', + 'seoTitleField' => 'seoTitleSourceField', 'seoDescriptionSource' => 'seoDescriptionSource', - 'seoDescriptionField' => 'seoDescriptionSourceField', - 'seoKeywordsSource' => 'seoKeywordsSource', - 'seoKeywordsField' => 'seoKeywordsSourceField', - 'seoImageIds' => 'seoImageId', - 'seoImageSource' => 'seoImageIdSource', - 'seoImageField' => 'seoImageIdSourceField', - 'twitterImageIds' => 'seoTwitterImageId', - 'twitterImageSource' => 'seoTwitterImageIdSource', - 'twitterImageField' => 'seoTwitterImageIdSourceField', - 'ogImageIds' => 'seoFacebookImageId', - 'ogImageSource' => 'seoFacebookImageIdSource', - 'ogImageField' => 'seoFacebookImageIdSourceField', + 'seoDescriptionField' => 'seoDescriptionSourceField', + 'seoKeywordsSource' => 'seoKeywordsSource', + 'seoKeywordsField' => 'seoKeywordsSourceField', + 'seoImageIds' => 'seoImageId', + 'seoImageSource' => 'seoImageIdSource', + 'seoImageField' => 'seoImageIdSourceField', + 'twitterImageIds' => 'seoTwitterImageId', + 'twitterImageSource' => 'seoTwitterImageIdSource', + 'twitterImageField' => 'seoTwitterImageIdSourceField', + 'ogImageIds' => 'seoFacebookImageId', + 'ogImageSource' => 'seoFacebookImageIdSource', + 'ogImageField' => 'seoFacebookImageIdSourceField', ], ], ]; @@ -92,29 +91,29 @@ class Migration ]; const FIELD_VALUE_MAP = [ - 'seoTitleSource' => [ - 'field' => 'fromField', + 'seoTitleSource' => [ + 'field' => 'fromField', 'custom' => 'fromCustom', ], 'seoDescriptionSource' => [ - 'field' => 'fromField', + 'field' => 'fromField', 'custom' => 'fromCustom', ], - 'seoKeywordsSource' => [ - 'field' => 'fromField', - 'custom' => 'fromCustom', + 'seoKeywordsSource' => [ + 'field' => 'fromField', + 'custom' => 'fromCustom', 'keywords' => 'keywordsFromField', ], - 'seoImageSource' => [ - 'field' => 'fromField', + 'seoImageSource' => [ + 'field' => 'fromField', 'custom' => 'fromAsset', ], - 'twitterImageSource' => [ - 'field' => 'fromField', + 'twitterImageSource' => [ + 'field' => 'fromField', 'custom' => 'fromAsset', ], - 'ogImageSource' => [ - 'field' => 'fromField', + 'ogImageSource' => [ + 'field' => 'fromField', 'custom' => 'fromAsset', ], ]; diff --git a/src/helpers/PluginTemplate.php b/src/helpers/PluginTemplate.php index f6ea85a91..3ceb113d5 100644 --- a/src/helpers/PluginTemplate.php +++ b/src/helpers/PluginTemplate.php @@ -11,13 +11,13 @@ namespace nystudio107\seomatic\helpers; -use nystudio107\seomatic\Seomatic; - -use nystudio107\minify\Minify; - use Craft; + use craft\helpers\Template; + use craft\web\View; +use nystudio107\minify\Minify; +use nystudio107\seomatic\Seomatic; use yii\base\Exception; @@ -95,7 +95,6 @@ public static function renderPluginTemplate( if ($minify) { $htmlText = Minify::$plugin->minify->$minifier($htmlText); } - } } catch (\Exception $e) { $htmlText = Craft::t( diff --git a/src/helpers/Schema.php b/src/helpers/Schema.php index 1f1b0bdd3..a0cc1c2c4 100644 --- a/src/helpers/Schema.php +++ b/src/helpers/Schema.php @@ -260,7 +260,7 @@ public static function getSchemaArray($path = ''): array $cache = Craft::$app->getCache(); $typesArray = $cache->getOrSet( self::CACHE_KEY . 'schemaArray', - function () use ($path) { + function() use ($path) { Craft::info( 'schemaArray cache miss: ' . $path, __METHOD__ @@ -361,7 +361,7 @@ public static function getSchemaTree() $cache = Craft::$app->getCache(); $typesArray = $cache->getOrSet( self::CACHE_KEY . 'schemaTree', - function () { + function() { Craft::info( 'schemaTree cache miss', __METHOD__ @@ -502,7 +502,7 @@ protected static function pruneSchemaTree(array $typesArray, string $path): arra $id = implode(self::SCHEMA_PATH_DELIMITER, [ $parts[0], $parts[1], - end($parts) + end($parts), ]); } if (!empty($typesArray['children'])) { @@ -551,7 +551,7 @@ protected static function getGoogleRichSnippets(): array $cache = Craft::$app->getCache(); return $cache->getOrSet( self::CACHE_KEY . 'googleRichSnippets', - function () { + function() { Craft::info( 'googleRichSnippets cache miss', __METHOD__ diff --git a/src/helpers/SiteHelper.php b/src/helpers/SiteHelper.php index b368765b2..0b1c7f133 100644 --- a/src/helpers/SiteHelper.php +++ b/src/helpers/SiteHelper.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\helpers; -use nystudio107\seomatic\Seomatic; - use Craft; +use nystudio107\seomatic\Seomatic; + /** * @author nystudio107 * @package Seomatic diff --git a/src/helpers/Sitemap.php b/src/helpers/Sitemap.php index 25deba13f..34898ddaa 100644 --- a/src/helpers/Sitemap.php +++ b/src/helpers/Sitemap.php @@ -229,7 +229,7 @@ public static function generateSitemap(array $params) continue; } } - $dateUpdated = $element->dateUpdated ?? $element->dateCreated ?? new \DateTime; + $dateUpdated = $element->dateUpdated ?? $element->dateCreated ?? new \DateTime(); $lines[] = ''; // Standard sitemap key/values $lines[] = ''; @@ -574,7 +574,7 @@ protected static function assetFilesSitemapLink(Asset $asset, MetaBundle $metaBu { if ((bool)$asset->enabledForSite && $asset->getUrl() !== null) { if (\in_array($asset->kind, SitemapTemplate::FILE_TYPES, false)) { - $dateUpdated = $asset->dateUpdated ?? $asset->dateCreated ?? new \DateTime; + $dateUpdated = $asset->dateUpdated ?? $asset->dateCreated ?? new \DateTime(); $lines[] = ''; $lines[] = ''; $lines[] = Html::encode(UrlHelper::absoluteUrlWithProtocol($asset->getUrl())); diff --git a/src/helpers/Text.php b/src/helpers/Text.php index 18f371252..40939db89 100644 --- a/src/helpers/Text.php +++ b/src/helpers/Text.php @@ -11,9 +11,9 @@ namespace nystudio107\seomatic\helpers; -use nystudio107\seomatic\helpers\Field as FieldHelper; +use benf\neo\elements\Block as NeoBlock; -use nystudio107\seomatic\Seomatic; +use benf\neo\elements\db\BlockQuery as NeoBlockQuery; use craft\elements\db\MatrixBlockQuery; use craft\elements\db\TagQuery; @@ -21,20 +21,20 @@ use craft\elements\Tag; use craft\helpers\HtmlPurifier; -use yii\base\InvalidConfigException; +use nystudio107\seomatic\helpers\Field as FieldHelper; + +use nystudio107\seomatic\Seomatic; +use PhpScience\TextRank\TextRankFacade; +use PhpScience\TextRank\Tool\StopWords\StopWordsAbstract; +use Stringy\Stringy; use verbb\doxter\Doxter; use verbb\doxter\fields\data\DoxterData; -use verbb\supertable\elements\SuperTableBlockElement as SuperTableBlock; -use verbb\supertable\elements\db\SuperTableBlockQuery; - -use benf\neo\elements\db\BlockQuery as NeoBlockQuery; -use benf\neo\elements\Block as NeoBlock; -use Stringy\Stringy; +use verbb\supertable\elements\db\SuperTableBlockQuery; -use PhpScience\TextRank\TextRankFacade; -use PhpScience\TextRank\Tool\StopWords\StopWordsAbstract; +use verbb\supertable\elements\SuperTableBlockElement as SuperTableBlock; +use yii\base\InvalidConfigException; /** * @author nystudio107 @@ -164,7 +164,7 @@ public static function extractTextFromTags($tags): string $tags = $tags->all(); } foreach ($tags as $tag) { - $result .= $tag->title.', '; + $result .= $tag->title . ', '; } $result = rtrim($result, ', '); @@ -206,7 +206,7 @@ public static function extractTextFromMatrix($blocks, $fieldHandle = ''): string foreach ($fieldClasses as $fieldClassKey) { if ($field instanceof $fieldClassKey) { if ($field->handle === $fieldHandle || empty($fieldHandle)) { - $result .= self::extractTextFromField($block[$field->handle]).' '; + $result .= self::extractTextFromField($block[$field->handle]) . ' '; } } } @@ -252,7 +252,7 @@ public static function extractTextFromNeo($blocks, $fieldHandle = ''): string foreach ($fieldClasses as $fieldClassKey) { if ($field instanceof $fieldClassKey) { if ($field->handle === $fieldHandle || empty($fieldHandle)) { - $result .= self::extractTextFromField($block[$field->handle]).' '; + $result .= self::extractTextFromField($block[$field->handle]) . ' '; } } } @@ -298,7 +298,7 @@ public static function extractTextFromSuperTable($blocks, $fieldHandle = ''): st foreach ($fieldClasses as $fieldClassKey) { if ($field instanceof $fieldClassKey) { if ($field->handle === $fieldHandle || empty($fieldHandle)) { - $result .= self::extractTextFromField($block[$field->handle]).' '; + $result .= self::extractTextFromField($block[$field->handle]) . ' '; } } } @@ -481,9 +481,9 @@ protected static function stopWordsForLanguage(string $language) $language = 'English'; } - $className = 'PhpScience\\TextRank\\Tool\\StopWords\\'.ucfirst($language); + $className = 'PhpScience\\TextRank\\Tool\\StopWords\\' . ucfirst($language); if (class_exists($className)) { - $stopWords = new $className; + $stopWords = new $className(); } return $stopWords; diff --git a/src/integrations/campaign/behaviors/CampaignBehavior.php b/src/integrations/campaign/behaviors/CampaignBehavior.php index 46ea0e74f..34c68a9df 100644 --- a/src/integrations/campaign/behaviors/CampaignBehavior.php +++ b/src/integrations/campaign/behaviors/CampaignBehavior.php @@ -53,5 +53,4 @@ public function getSiteSettings(): array return $siteSettings; } - } diff --git a/src/integrations/feedme/SeoSettings.php b/src/integrations/feedme/SeoSettings.php index c6f1e2a37..2f4896e69 100644 --- a/src/integrations/feedme/SeoSettings.php +++ b/src/integrations/feedme/SeoSettings.php @@ -9,22 +9,21 @@ namespace nystudio107\seomatic\integrations\feedme; -use nystudio107\seomatic\fields\SeoSettings as SeoSettingsField; +use Cake\Utility\Hash; use Craft; use craft\db\Query; use craft\db\Table; use craft\elements\Asset as AssetElement; -use craft\helpers\ArrayHelper; -use craft\helpers\Db; -use craft\helpers\UrlHelper; - use craft\feedme\base\Field as FeedMeField; use craft\feedme\base\FieldInterface as FeedMeFieldInterface; + use craft\feedme\helpers\AssetHelper; use craft\feedme\helpers\DataHelper; +use craft\helpers\ArrayHelper; +use craft\helpers\UrlHelper; -use Cake\Utility\Hash; +use nystudio107\seomatic\fields\SeoSettings as SeoSettingsField; /** * @author nystudio107 diff --git a/src/jobs/GenerateSitemap.php b/src/jobs/GenerateSitemap.php index f5cbfad1c..ce2ee8397 100644 --- a/src/jobs/GenerateSitemap.php +++ b/src/jobs/GenerateSitemap.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\jobs; -use nystudio107\seomatic\helpers\Sitemap; - use Craft; + use craft\queue\BaseJob; +use nystudio107\seomatic\helpers\Sitemap; /** * @author nystudio107 @@ -58,7 +58,7 @@ public function execute($queue) 'type' => $this->type, 'queueJobCacheKey' => $this->queueJobCacheKey, 'queue' => $queue, - 'job' => $this + 'job' => $this, ]; $this->queue = $queue; @@ -69,7 +69,8 @@ public function execute($queue) * Wrapper for `setProgress()` * @param float $progress */ - public function updateProgress(float $progress) { + public function updateProgress(float $progress) + { $this->setProgress($this->queue, $progress); } diff --git a/src/listeners/GetCraftQLSchema.php b/src/listeners/GetCraftQLSchema.php index 366a40c6d..62605a7b2 100644 --- a/src/listeners/GetCraftQLSchema.php +++ b/src/listeners/GetCraftQLSchema.php @@ -9,18 +9,18 @@ namespace nystudio107\seomatic\listeners; +use craft\base\Element; +use craft\helpers\Json; +use markhuot\CraftQL\Builders\Field as FieldBuilder; +use markhuot\CraftQL\Events\AlterSchemaFields; use nystudio107\seomatic\helpers\Container as ContainerHelper; use nystudio107\seomatic\models\MetaJsonLdContainer; + use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\models\MetaScriptContainer; -use nystudio107\seomatic\models\MetaTitleContainer; -use nystudio107\seomatic\models\MetaTagContainer; -use craft\base\Element; -use craft\helpers\Json; - -use markhuot\CraftQL\Events\AlterSchemaFields; -use markhuot\CraftQL\Builders\Field as FieldBuilder; +use nystudio107\seomatic\models\MetaTagContainer; +use nystudio107\seomatic\models\MetaTitleContainer; /** * @author nystudio107 @@ -56,7 +56,7 @@ public static function handle(AlterSchemaFields $event) foreach (self::CRAFT_QL_FIELDS as $fieldHandle => $containerType) { $seomaticField ->addStringField($fieldHandle) - ->resolve(function (array $data) use ($containerType) { + ->resolve(function(array $data) use ($containerType) { // $root contains the data returned by the field below $result = ContainerHelper::getContainerArrays( [$containerType], @@ -73,13 +73,13 @@ public static function handle(AlterSchemaFields $event) } // Add the root $event->schema->addField('seomatic') - ->arguments(function (FieldBuilder $field) { + ->arguments(function(FieldBuilder $field) { $field->addIntArgument('siteId'); $field->addStringArgument('uri'); $field->addBooleanArgument('asArray'); }) ->type($seomaticField) - ->resolve(function ($root, $args, $context, $info) { + ->resolve(function($root, $args, $context, $info) { // If our root is an Element, extract the URI and siteId from it if ($root instanceof Element) { /** Element $root */ diff --git a/src/migrations/Install.php b/src/migrations/Install.php index 1f76c3ef4..242d73ddd 100644 --- a/src/migrations/Install.php +++ b/src/migrations/Install.php @@ -11,12 +11,12 @@ namespace nystudio107\seomatic\migrations; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\fields\Seomatic_Meta as Seomatic_MetaField; - use Craft; use craft\config\DbConfig; + use craft\db\Migration; +use nystudio107\seomatic\fields\Seomatic_Meta as Seomatic_MetaField; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 @@ -82,29 +82,29 @@ protected function createTables() $this->createTable( '{{%seomatic_metabundles}}', [ - 'id' => $this->primaryKey(), + 'id' => $this->primaryKey(), 'dateCreated' => $this->dateTime()->notNull(), 'dateUpdated' => $this->dateTime()->notNull(), - 'uid' => $this->uid(), - - 'bundleVersion' => $this->string()->notNull()->defaultValue(''), - 'sourceBundleType' => $this->string()->notNull()->defaultValue(''), - 'sourceId' => $this->integer()->null(), - 'sourceName' => $this->string()->notNull()->defaultValue(''), - 'sourceHandle' => $this->string()->notNull()->defaultValue(''), - 'sourceType' => $this->string(64)->notNull()->defaultValue(''), - 'typeId' => $this->integer()->null(), - 'sourceTemplate' => $this->string(500)->defaultValue(''), - 'sourceSiteId' => $this->integer()->null(), - 'sourceAltSiteSettings' => $this->text(), - 'sourceDateUpdated' => $this->dateTime()->notNull(), - 'metaGlobalVars' => $this->text(), - 'metaSiteVars' => $this->text(), - 'metaSitemapVars' => $this->text(), - 'metaContainers' => $this->text(), - 'redirectsContainer' => $this->text(), + 'uid' => $this->uid(), + + 'bundleVersion' => $this->string()->notNull()->defaultValue(''), + 'sourceBundleType' => $this->string()->notNull()->defaultValue(''), + 'sourceId' => $this->integer()->null(), + 'sourceName' => $this->string()->notNull()->defaultValue(''), + 'sourceHandle' => $this->string()->notNull()->defaultValue(''), + 'sourceType' => $this->string(64)->notNull()->defaultValue(''), + 'typeId' => $this->integer()->null(), + 'sourceTemplate' => $this->string(500)->defaultValue(''), + 'sourceSiteId' => $this->integer()->null(), + 'sourceAltSiteSettings' => $this->text(), + 'sourceDateUpdated' => $this->dateTime()->notNull(), + 'metaGlobalVars' => $this->text(), + 'metaSiteVars' => $this->text(), + 'metaSitemapVars' => $this->text(), + 'metaContainers' => $this->text(), + 'redirectsContainer' => $this->text(), 'frontendTemplatesContainer' => $this->text(), - 'metaBundleSettings' => $this->text(), + 'metaBundleSettings' => $this->text(), ] ); } @@ -200,7 +200,7 @@ protected function migrateData() { // Migrate the old Seomatic_Meta field $this->update('{{%fields}}', [ - 'type' => Seomatic_MetaField::class + 'type' => Seomatic_MetaField::class, ], ['type' => 'Seomatic_Meta']); } diff --git a/src/migrations/m180314_002755_field_type.php b/src/migrations/m180314_002755_field_type.php index 728520735..0203d8b45 100644 --- a/src/migrations/m180314_002755_field_type.php +++ b/src/migrations/m180314_002755_field_type.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\migrations; -use nystudio107\seomatic\fields\Seomatic_Meta as Seomatic_MetaField; - use craft\db\Migration; +use nystudio107\seomatic\fields\Seomatic_Meta as Seomatic_MetaField; + /** * @author nystudio107 * @package SEOmatic @@ -34,7 +34,7 @@ public function safeUp() // Migrate the old Seomatic_Meta field $this->update('{{%fields}}', [ - 'type' => Seomatic_MetaField::class + 'type' => Seomatic_MetaField::class, ], ['type' => 'Seomatic_Meta']); // Refresh the field memoization @@ -57,5 +57,4 @@ public function safeDown() // Protected Methods // ========================================================================= - } diff --git a/src/migrations/m180314_002756_base_install.php b/src/migrations/m180314_002756_base_install.php index 8d826314f..15096f728 100644 --- a/src/migrations/m180314_002756_base_install.php +++ b/src/migrations/m180314_002756_base_install.php @@ -45,5 +45,4 @@ public function safeDown() // Protected Methods // ========================================================================= - } diff --git a/src/migrations/m180502_202319_remove_field_metabundles.php b/src/migrations/m180502_202319_remove_field_metabundles.php index 147958ca5..dc6962cf8 100644 --- a/src/migrations/m180502_202319_remove_field_metabundles.php +++ b/src/migrations/m180502_202319_remove_field_metabundles.php @@ -2,7 +2,6 @@ namespace nystudio107\seomatic\migrations; -use Craft; use craft\db\Migration; /** diff --git a/src/migrations/m180711_024947_commerce_products.php b/src/migrations/m180711_024947_commerce_products.php index a41455963..9ff0b9f30 100644 --- a/src/migrations/m180711_024947_commerce_products.php +++ b/src/migrations/m180711_024947_commerce_products.php @@ -3,10 +3,10 @@ namespace nystudio107\seomatic\migrations; use Craft; -use nystudio107\seomatic\seoelements\SeoProduct; +use craft\commerce\Plugin as CommercePlugin; use craft\db\Migration; -use craft\commerce\Plugin as CommercePlugin; +use nystudio107\seomatic\seoelements\SeoProduct; /** * m180711_024947_commerce_products migration. diff --git a/src/migrations/m190518_030221_calendar_events.php b/src/migrations/m190518_030221_calendar_events.php index 559d3185a..89dac02b1 100644 --- a/src/migrations/m190518_030221_calendar_events.php +++ b/src/migrations/m190518_030221_calendar_events.php @@ -3,9 +3,9 @@ namespace nystudio107\seomatic\migrations; use Craft; -use nystudio107\seomatic\seoelements\SeoEvent; - use craft\db\Migration; + +use nystudio107\seomatic\seoelements\SeoEvent; use Solspace\Calendar\Calendar as CalendarPlugin; /** diff --git a/src/migrations/m200419_203444_add_type_id.php b/src/migrations/m200419_203444_add_type_id.php index 5cd091f73..95dcac224 100644 --- a/src/migrations/m200419_203444_add_type_id.php +++ b/src/migrations/m200419_203444_add_type_id.php @@ -2,7 +2,6 @@ namespace nystudio107\seomatic\migrations; -use Craft; use craft\db\Migration; /** diff --git a/src/migrations/m210817_230853_announcement_v3_4.php b/src/migrations/m210817_230853_announcement_v3_4.php index 515cf769e..7f4a0f77b 100644 --- a/src/migrations/m210817_230853_announcement_v3_4.php +++ b/src/migrations/m210817_230853_announcement_v3_4.php @@ -17,10 +17,10 @@ public function safeUp() { if (version_compare(Craft::$app->getVersion(), '3.7', '>=')) { Craft::$app->announcements->push( - function ($language) { + function($language) { return Craft::t('seomatic', 'SEO Settings fields', [], $language); }, - function ($language) { + function($language) { return Craft::t('seomatic', 'The [SEO Settings]({url}) fields now feature **Override** lightswitches next to each setting, letting you explicitly override SEO settings on a per-entry basis.', [ 'url' => 'https://nystudio107.com/docs/seomatic/fields.html', ], $language); diff --git a/src/migrations/m230601_184311_announcement_google_ua_deprecated.php b/src/migrations/m230601_184311_announcement_google_ua_deprecated.php index 3611d4376..53c1718f9 100644 --- a/src/migrations/m230601_184311_announcement_google_ua_deprecated.php +++ b/src/migrations/m230601_184311_announcement_google_ua_deprecated.php @@ -33,10 +33,10 @@ public function safeUp() $enabled = $metaContainer['data']['googleAnalytics']['include'] ?? null; if ($enabled) { Craft::$app->announcements->push( - function ($language) { + function($language) { return Craft::t('seomatic', 'Google Universal Analytics deprecated', [], $language); }, - function ($language) { + function($language) { return Craft::t('seomatic', 'Universal Analytics (which is used on this site via the SEOmatic plugin) is being [discontinued on July 1st, 2023]({url}). You should use Google gtag.js or Google Tag Manager instead and transition to a new GA4 property.', [ 'url' => 'https://support.google.com/analytics/answer/11583528', ], $language); diff --git a/src/models/MetaBundle.php b/src/models/MetaBundle.php index f4c6ec1cd..8f91c95b7 100644 --- a/src/models/MetaBundle.php +++ b/src/models/MetaBundle.php @@ -269,29 +269,29 @@ public function rules(): array [ 'sourceId', 'sourceSiteId', - 'typeId' + 'typeId', ], 'number', - 'min' => 1 + 'min' => 1, ], [ [ - 'sourceDateUpdated' + 'sourceDateUpdated', ], - DateTimeValidator::class + DateTimeValidator::class, ], [ [ 'sourceAltSiteSettings', ], - 'safe' + 'safe', ], [ [ 'metaContainers', 'redirectsContainer', ], - ArrayValidator::class + ArrayValidator::class, ], [ [ @@ -301,7 +301,7 @@ public function rules(): array 'metaBundleSettings', 'frontendTemplatesContainer', ], - 'safe' + 'safe', ], ]; @@ -320,7 +320,7 @@ public function behaviors() 'class' => EnvAttributeParserBehavior::class, 'attributes' => [ ], - ] + ], ]; } diff --git a/src/models/MetaBundleSettings.php b/src/models/MetaBundleSettings.php index a78a49bf2..ff149be2c 100644 --- a/src/models/MetaBundleSettings.php +++ b/src/models/MetaBundleSettings.php @@ -310,7 +310,7 @@ public function rules(): array 'ogImageDescriptionSource', 'ogImageDescriptionField', ], - 'string' + 'string', ], [ ['seoImageTransformMode', 'twitterImageTransformMode', 'ogImageTransformMode'], @@ -327,7 +327,7 @@ public function rules(): array 'twitterImageTransform', 'ogImageTransform', ], - 'boolean' + 'boolean', ], [ ['seoImageSource', 'twitterImageSource', 'ogImageSource'], 'in', 'range' => [ @@ -399,7 +399,8 @@ public function rules(): array * * @return string */ - public function getHash() { + public function getHash() + { return spl_object_hash($this); } } diff --git a/src/models/MetaJsonLd.php b/src/models/MetaJsonLd.php index 8181df91a..7cf0e2f86 100644 --- a/src/models/MetaJsonLd.php +++ b/src/models/MetaJsonLd.php @@ -44,28 +44,28 @@ class MetaJsonLd extends NonceItem * * @var string */ - static public $schemaTypeName = 'JsonLd'; + public static $schemaTypeName = 'JsonLd'; /** * The Schema.org Type Scope * * @var string */ - static public $schemaTypeScope = 'https://schema.org/'; + public static $schemaTypeScope = 'https://schema.org/'; /** * The Schema.org Type Description * * @var string */ - static public $schemaTypeDescription = 'Generic JsonLd type.'; + public static $schemaTypeDescription = 'Generic JsonLd type.'; /** * The Schema.org Type Extends * * @var string */ - static public $schemaTypeExtends = ''; + public static $schemaTypeExtends = ''; // Public Properties // ========================================================================= @@ -236,8 +236,7 @@ public function render( 'renderScriptTags' => true, 'array' => false, ] - ): string - { + ): string { $html = ''; $options = $this->tagAttributes(); if ($this->prepForRender($options)) { @@ -359,8 +358,7 @@ public function datetimeAttributes(): array public function validateJsonSchema( $attribute, $params - ) - { + ) { if (!\in_array($attribute, $this->getSchemaPropertyNames(), true)) { $this->addError($attribute, 'The attribute does not exist.'); } else { @@ -382,7 +380,7 @@ public function validateJsonSchema( // Use Yii's validator for URLs case 'URL': - $validator = new UrlValidator; + $validator = new UrlValidator(); if ($validator->validate($data, $error)) { $validated = true; } @@ -390,7 +388,7 @@ public function validateJsonSchema( // Use Yii's validator for Booleans case 'Boolean': - $validator = new BooleanValidator; + $validator = new BooleanValidator(); if ($validator->validate($data, $error)) { $validated = true; } @@ -400,7 +398,7 @@ public function validateJsonSchema( case 'Number': case 'Float': case 'Integer': - $validator = new NumberValidator; + $validator = new NumberValidator(); if ($expectedType === 'Integer') { $validator->integerOnly = true; } @@ -411,7 +409,7 @@ public function validateJsonSchema( // Use Yii's validator for Dates case 'Date': - $validator = new DateValidator; + $validator = new DateValidator(); $validator->type = DateValidator::TYPE_DATE; $validator->format = 'php:' . DateTime::ATOM; if ($validator->validate($data, $error)) { @@ -425,7 +423,7 @@ public function validateJsonSchema( // Use Yii's validator for DateTimes case 'DateTime': - $validator = new DateValidator; + $validator = new DateValidator(); $validator->type = DateValidator::TYPE_DATETIME; $validator->format = 'YYYY-MM-DDThh:mm:ss.sTZD'; if ($validator->validate($data, $error)) { @@ -435,7 +433,7 @@ public function validateJsonSchema( // Use Yii's validator for Times case 'Time': - $validator = new DateValidator; + $validator = new DateValidator(); $validator->type = DateValidator::TYPE_TIME; $validator->format = 'hh:mm:ss.sTZD'; if ($validator->validate($data, $error)) { @@ -489,6 +487,6 @@ public function generateNonce() return $result; } -// Private Methods + // Private Methods // ========================================================================= } diff --git a/src/models/MetaJsonLdContainer.php b/src/models/MetaJsonLdContainer.php index 713b07b7d..46ce4fcf6 100644 --- a/src/models/MetaJsonLdContainer.php +++ b/src/models/MetaJsonLdContainer.php @@ -58,7 +58,7 @@ public function includeMetaData($dependency) } [$jsonLd, $attrs] = $cache->getOrSet( self::CONTAINER_TYPE . $uniqueKey, - function () use ($uniqueKey) { + function() use ($uniqueKey) { Craft::info( self::CONTAINER_TYPE . ' cache miss: ' . $uniqueKey, __METHOD__ @@ -128,7 +128,7 @@ protected function renderInternal(): array if ($metaJsonLdModel->prepForRender($options)) { $tagData[] = [ 'jsonLd' => $metaJsonLdModel, - 'position' => View::POS_END + 'position' => View::POS_END, ]; // If `devMode` is enabled, validate the JSON-LD and output any model errors if (Seomatic::$devMode) { diff --git a/src/models/MetaLink.php b/src/models/MetaLink.php index e4ff4ad2e..e428226cd 100644 --- a/src/models/MetaLink.php +++ b/src/models/MetaLink.php @@ -125,7 +125,7 @@ public function rules() [['crossorigin', 'media', 'rel', 'sizes', 'type'], 'string'], ['crossorigin', 'in', 'range' => [ 'anonymous', - 'use-credentials' + 'use-credentials', ]], ['href', 'validateStringOrArray'], ['hreflang', 'validateStringOrArray'], diff --git a/src/models/MetaLinkContainer.php b/src/models/MetaLinkContainer.php index 933144ccc..21b3da23c 100644 --- a/src/models/MetaLinkContainer.php +++ b/src/models/MetaLinkContainer.php @@ -11,11 +11,11 @@ namespace nystudio107\seomatic\models; -use nystudio107\seomatic\Seomatic; +use Craft; use nystudio107\seomatic\base\MetaContainer; use nystudio107\seomatic\helpers\ImageTransform as ImageTransformHelper; -use Craft; +use nystudio107\seomatic\Seomatic; use yii\caching\TagDependency; /** @@ -49,16 +49,16 @@ class MetaLinkContainer extends MetaContainer public function includeMetaData($dependency) { Craft::beginProfile('MetaLinkContainer::includeMetaData', __METHOD__); - $uniqueKey = $this->handle.$dependency->tags[3]; + $uniqueKey = $this->handle . $dependency->tags[3]; $cache = Craft::$app->getCache(); if ($this->clearCache) { TagDependency::invalidate($cache, $dependency->tags[3]); } $tagData = $cache->getOrSet( - self::CONTAINER_TYPE.$uniqueKey, - function () use ($uniqueKey) { + self::CONTAINER_TYPE . $uniqueKey, + function() use ($uniqueKey) { Craft::info( - self::CONTAINER_TYPE.' cache miss: '.$uniqueKey, + self::CONTAINER_TYPE . ' cache miss: ' . $uniqueKey, __METHOD__ ); $tagData = []; diff --git a/src/models/MetaScriptContainer.php b/src/models/MetaScriptContainer.php index 3b446aa58..8bf14fb32 100644 --- a/src/models/MetaScriptContainer.php +++ b/src/models/MetaScriptContainer.php @@ -62,7 +62,7 @@ public function includeMetaData($dependency) } $tagData = $cache->getOrSet( self::CONTAINER_TYPE . $uniqueKey, - function () use ($uniqueKey) { + function() use ($uniqueKey) { Craft::info( self::CONTAINER_TYPE . ' cache miss: ' . $uniqueKey, __METHOD__ diff --git a/src/models/MetaSiteVars.php b/src/models/MetaSiteVars.php index bfcf57c24..8b5d03ca9 100644 --- a/src/models/MetaSiteVars.php +++ b/src/models/MetaSiteVars.php @@ -182,13 +182,13 @@ public function rules(): array 'siteLinksQueryInput', 'referrer', ], - 'string' + 'string', ], [ [ - 'additionalSitemapUrlsDateUpdated' + 'additionalSitemapUrlsDateUpdated', ], - DateTimeValidator::class + DateTimeValidator::class, ], [ [ diff --git a/src/models/MetaSitemapVars.php b/src/models/MetaSitemapVars.php index f19096dad..487ce8f2a 100644 --- a/src/models/MetaSitemapVars.php +++ b/src/models/MetaSitemapVars.php @@ -126,21 +126,21 @@ public function rules(): array ], [ [ - 'sitemapPriority' + 'sitemapPriority', ], - 'number' + 'number', ], [ [ - 'sitemapLimit' + 'sitemapLimit', ], - 'integer' + 'integer', ], [ [ - 'structureDepth' + 'structureDepth', ], - 'integer' + 'integer', ], [ [ @@ -149,14 +149,14 @@ public function rules(): array 'sitemapAltLinks', 'sitemapFiles', ], - 'boolean' + 'boolean', ], [ [ 'sitemapImageFieldMap', - 'sitemapVideoFieldMap' + 'sitemapVideoFieldMap', ], - ArrayValidator::class + ArrayValidator::class, ], ]; } diff --git a/src/models/MetaTag.php b/src/models/MetaTag.php index 3a19d9cf0..5a4b3f7c3 100644 --- a/src/models/MetaTag.php +++ b/src/models/MetaTag.php @@ -117,7 +117,7 @@ public function rules() $rules = array_merge($rules, [ [['charset', 'httpEquiv', 'name', 'property'], 'string'], [['content'], 'validateStringOrArray'], - [['name'], 'safe', 'on' => ['warning']] + [['name'], 'safe', 'on' => ['warning']], ]); return $rules; diff --git a/src/models/MetaTagContainer.php b/src/models/MetaTagContainer.php index 6549c15d5..432097290 100644 --- a/src/models/MetaTagContainer.php +++ b/src/models/MetaTagContainer.php @@ -11,11 +11,11 @@ namespace nystudio107\seomatic\models; -use nystudio107\seomatic\Seomatic; +use Craft; use nystudio107\seomatic\base\MetaContainer; use nystudio107\seomatic\helpers\ImageTransform as ImageTransformHelper; -use Craft; +use nystudio107\seomatic\Seomatic; use yii\caching\TagDependency; /** @@ -49,16 +49,16 @@ class MetaTagContainer extends MetaContainer public function includeMetaData($dependency) { Craft::beginProfile('MetaTagContainer::includeMetaData', __METHOD__); - $uniqueKey = $this->handle.$dependency->tags[3]; + $uniqueKey = $this->handle . $dependency->tags[3]; $cache = Craft::$app->getCache(); if ($this->clearCache) { TagDependency::invalidate($cache, $dependency->tags[3]); } $tagData = $cache->getOrSet( - self::CONTAINER_TYPE.$uniqueKey, - function () use ($uniqueKey) { + self::CONTAINER_TYPE . $uniqueKey, + function() use ($uniqueKey) { Craft::info( - self::CONTAINER_TYPE.' cache miss: '.$uniqueKey, + self::CONTAINER_TYPE . ' cache miss: ' . $uniqueKey, __METHOD__ ); $tagData = []; diff --git a/src/models/MetaTitle.php b/src/models/MetaTitle.php index 26fce88a1..71cdd1ff5 100644 --- a/src/models/MetaTitle.php +++ b/src/models/MetaTitle.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\models; -use nystudio107\seomatic\Seomatic; use nystudio107\seomatic\base\MetaItem; use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; use nystudio107\seomatic\helpers\Text as TextHelper; +use nystudio107\seomatic\Seomatic; use yii\helpers\Html; @@ -148,16 +148,18 @@ public function prepForRender(&$data): bool break; } // Handle the case of empty titles - if ($prefix === (' '.$separator.' ')) { + if ($prefix === (' ' . $separator . ' ')) { $prefix = ''; } - if ($suffix === (' '.$separator)) { + if ($suffix === (' ' . $separator)) { $suffix = ''; } // Remove potential double spaces - $prefix = preg_replace('/\s+/', ' ', $prefix);; - $suffix = preg_replace('/\s+/', ' ', $suffix);; - $lengthAdjust = mb_strlen($prefix.$suffix); + $prefix = preg_replace('/\s+/', ' ', $prefix); + ; + $suffix = preg_replace('/\s+/', ' ', $suffix); + ; + $lengthAdjust = mb_strlen($prefix . $suffix); // Parse the data $scenario = $this->scenario; $this->setScenario('render'); @@ -176,7 +178,7 @@ public function prepForRender(&$data): bool '…' ); } - $data = $prefix.$data.$suffix; + $data = $prefix . $data . $suffix; } else { // If no title is provided, just use the site name $data = MetaValueHelper::parseString($this->siteName); @@ -195,7 +197,7 @@ public function prepForRender(&$data): bool /** * @inheritdoc */ - public function render(array $params = []):string + public function render(array $params = []): string { $html = ''; $title = $this->title; diff --git a/src/models/MetaTitleContainer.php b/src/models/MetaTitleContainer.php index 4b89d5d52..ddd221fed 100644 --- a/src/models/MetaTitleContainer.php +++ b/src/models/MetaTitleContainer.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\models; -use nystudio107\seomatic\Seomatic; +use Craft; use nystudio107\seomatic\base\MetaContainer; -use Craft; +use nystudio107\seomatic\Seomatic; use yii\caching\TagDependency; /** @@ -48,16 +48,16 @@ class MetaTitleContainer extends MetaContainer public function includeMetaData($dependency) { Craft::beginProfile('MetaTitleContainer::includeMetaData', __METHOD__); - $uniqueKey = $this->handle.$dependency->tags[3]; + $uniqueKey = $this->handle . $dependency->tags[3]; $cache = Craft::$app->getCache(); if ($this->clearCache) { TagDependency::invalidate($cache, $dependency->tags[3]); } $tagData = $cache->getOrSet( - self::CONTAINER_TYPE.$uniqueKey, - function () use ($uniqueKey) { + self::CONTAINER_TYPE . $uniqueKey, + function() use ($uniqueKey) { Craft::info( - self::CONTAINER_TYPE.' cache miss: '.$uniqueKey, + self::CONTAINER_TYPE . ' cache miss: ' . $uniqueKey, __METHOD__ ); $tagData = ''; diff --git a/src/models/Settings.php b/src/models/Settings.php index 633dea709..d0808f084 100644 --- a/src/models/Settings.php +++ b/src/models/Settings.php @@ -96,7 +96,7 @@ class Settings extends VarsModel public $sidebarDisplayPreviewTypes = [ 'google', 'twitter', - 'facebook' + 'facebook', ]; /** @@ -283,7 +283,7 @@ public function rules(): array 'addPaginatedHreflang', 'manuallySetEnvironment', ], - 'boolean' + 'boolean', ], ['cspNonce', 'string'], ['cspNonce', 'in', 'range' => [ @@ -304,7 +304,7 @@ public function rules(): array 'alwaysIncludeCanonicalUrls', 'lowercaseCanonicalUrl', ], - 'boolean' + 'boolean', ], [['devModeTitlePrefix', 'cpTitlePrefix', 'devModeCpTitlePrefix', 'truncateTitleTags', 'truncateDescriptionTags'], 'string'], ['separatorChar', 'string'], diff --git a/src/models/SitemapCustomTemplate.php b/src/models/SitemapCustomTemplate.php index 705d82a86..5bf933820 100644 --- a/src/models/SitemapCustomTemplate.php +++ b/src/models/SitemapCustomTemplate.php @@ -11,14 +11,14 @@ namespace nystudio107\seomatic\models; -use nystudio107\seomatic\Seomatic; +use Craft; use nystudio107\seomatic\base\FrontendTemplate; use nystudio107\seomatic\base\SitemapInterface; use nystudio107\seomatic\events\RegisterSitemapUrlsEvent; use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; use nystudio107\seomatic\helpers\UrlHelper; -use Craft; +use nystudio107\seomatic\Seomatic; use yii\caching\TagDependency; use yii\helpers\Html; @@ -77,10 +77,10 @@ public static function create(array $config = []) { $defaults = [ 'path' => 'sitemaps--' - .self::CUSTOM_SCOPE - .'-' - .self::CUSTOM_HANDLE - .'--', + . self::CUSTOM_SCOPE + . '-' + . self::CUSTOM_HANDLE + . '--', 'template' => '', 'controller' => 'sitemap', 'action' => 'sitemap-custom', @@ -128,16 +128,16 @@ public function render(array $params = []): string $dependency = new TagDependency([ 'tags' => [ self::GLOBAL_SITEMAP_CACHE_TAG, - self::SITEMAP_CACHE_TAG.$handle.$siteId, + self::SITEMAP_CACHE_TAG . $handle . $siteId, ], ]); - return $cache->getOrSet(self::CACHE_KEY.$groupId.self::CUSTOM_SCOPE.$handle.$siteId, function () use ( + return $cache->getOrSet(self::CACHE_KEY . $groupId . self::CUSTOM_SCOPE . $handle . $siteId, function() use ( $handle, $siteId ) { Craft::info( - 'Sitemap Custom cache miss: '.$handle.'/'.$siteId, + 'Sitemap Custom cache miss: ' . $handle . '/' . $siteId, __METHOD__ ); $lines = []; @@ -178,7 +178,7 @@ public function render(array $params = []): string ); $dateUpdated = $additionalSitemapUrl['lastmod'] ?? $metaBundle->metaSiteVars->additionalSitemapUrlsDateUpdated - ?? new \DateTime; + ?? new \DateTime(); $lines[] = ''; // Standard sitemap key/values $lines[] = ''; @@ -212,9 +212,9 @@ public function invalidateCache(int $siteId) { $handle = self::CUSTOM_HANDLE; $cache = Craft::$app->getCache(); - TagDependency::invalidate($cache, self::SITEMAP_CACHE_TAG.$handle.$siteId); + TagDependency::invalidate($cache, self::SITEMAP_CACHE_TAG . $handle . $siteId); Craft::info( - 'Sitemap Custom cache cleared: '.$handle, + 'Sitemap Custom cache cleared: ' . $handle, __METHOD__ ); } diff --git a/src/models/SitemapIndexTemplate.php b/src/models/SitemapIndexTemplate.php index 99762d61b..6a809e4de 100644 --- a/src/models/SitemapIndexTemplate.php +++ b/src/models/SitemapIndexTemplate.php @@ -11,20 +11,20 @@ namespace nystudio107\seomatic\models; -use nystudio107\seomatic\Seomatic; +use Craft; +use craft\models\SiteGroup; use nystudio107\seomatic\base\FrontendTemplate; use nystudio107\seomatic\base\SitemapInterface; -use nystudio107\seomatic\events\RegisterSitemapUrlsEvent; use nystudio107\seomatic\events\RegisterSitemapsEvent; -use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; +use nystudio107\seomatic\events\RegisterSitemapUrlsEvent; -use Craft; -use craft\models\SiteGroup; +use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; +use nystudio107\seomatic\Seomatic; +use yii\base\Event; use yii\caching\TagDependency; use yii\helpers\Html; use yii\web\NotFoundHttpException; -use yii\base\Event; /** * @author nystudio107 @@ -149,7 +149,7 @@ public function render(array $params = []): string ], ]); - return $cache->getOrSet(self::CACHE_KEY.$groupId.'.'.$siteId, function () use ($groupSiteIds, $siteId) { + return $cache->getOrSet(self::CACHE_KEY . $groupId . '.' . $siteId, function() use ($groupSiteIds, $siteId) { Craft::info( 'Sitemap index cache miss', __METHOD__ @@ -273,7 +273,7 @@ protected function addAdditionalSitemaps(MetaBundle $metaBundle, int $groupSiteI // Find the most recent date $dateUpdated = !empty($additionalSitemap['lastmod']) ? $additionalSitemap['lastmod'] - : new \DateTime; + : new \DateTime(); $lines[] = ''; $lines[] = $dateUpdated->format(\DateTime::W3C); $lines[] = ''; @@ -315,7 +315,7 @@ protected function addAdditionalSitemapUrls(MetaBundle $metaBundle, int $groupSi $lines[] = ''; // Find the most recent date $dateUpdated = $metaBundle->metaSiteVars->additionalSitemapUrlsDateUpdated - ?? new \DateTime; + ?? new \DateTime(); foreach ($additionalSitemapUrls as $additionalSitemapUrl) { if (!empty($additionalSitemapUrl['lastmod'])) { if ($additionalSitemapUrl['lastmod'] > $dateUpdated) { diff --git a/src/models/SitemapTemplate.php b/src/models/SitemapTemplate.php index 3fec36bf7..695863ecf 100644 --- a/src/models/SitemapTemplate.php +++ b/src/models/SitemapTemplate.php @@ -252,5 +252,4 @@ public function invalidateCache(string $handle, int $siteId) __METHOD__ ); } - } diff --git a/src/models/jsonld/AMRadioChannel.php b/src/models/jsonld/AMRadioChannel.php index a9764b3f0..0af1cfc9d 100644 --- a/src/models/jsonld/AMRadioChannel.php +++ b/src/models/jsonld/AMRadioChannel.php @@ -23,136 +23,136 @@ */ class AMRadioChannel extends MetaJsonLd implements AMRadioChannelInterface, RadioChannelInterface, BroadcastChannelInterface, IntangibleInterface, ThingInterface { - use AMRadioChannelTrait; - use RadioChannelTrait; - use BroadcastChannelTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AMRadioChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AMRadioChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RadioChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A radio channel that uses AM.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'broadcastChannelId' => ['Text'], - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], - 'broadcastServiceTier' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'genre' => ['Text', 'URL'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inBroadcastLineup' => ['CableOrSatelliteService'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'providesBroadcastService' => ['BroadcastService'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', - '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".', - 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', - 'description' => 'A description of the item.', - '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.', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'providesBroadcastService' => 'The BroadcastService offered on this channel.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AMRadioChannelTrait; + use RadioChannelTrait; + use BroadcastChannelTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AMRadioChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AMRadioChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RadioChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A radio channel that uses AM.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'broadcastChannelId' => ['Text'], + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], + 'broadcastServiceTier' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'genre' => ['Text', 'URL'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inBroadcastLineup' => ['CableOrSatelliteService'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'providesBroadcastService' => ['BroadcastService'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', + '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".', + 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', + 'description' => 'A description of the item.', + '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.', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'providesBroadcastService' => 'The BroadcastService offered on this channel.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/APIReference.php b/src/models/jsonld/APIReference.php index 937a7dc70..f84b445b4 100644 --- a/src/models/jsonld/APIReference.php +++ b/src/models/jsonld/APIReference.php @@ -23,378 +23,378 @@ */ class APIReference extends MetaJsonLd implements APIReferenceInterface, TechArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use APIReferenceTrait; - use TechArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use APIReferenceTrait; + use TechArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'APIReference'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'APIReference'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/APIReference'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/APIReference'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TechArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TechArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Reference documentation for application programming interfaces (APIs).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Reference documentation for application programming interfaces (APIs).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assembly' => ['Text'], - 'assemblyVersion' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dependencies' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'executableLibraryName' => ['Text'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'proficiencyLevel' => ['Text'], - 'programmingModel' => ['Text'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetPlatform' => ['Text'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assembly' => ['Text'], + 'assemblyVersion' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dependencies' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'executableLibraryName' => ['Text'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'proficiencyLevel' => ['Text'], + 'programmingModel' => ['Text'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetPlatform' => ['Text'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assembly' => 'Library file name, e.g., mscorlib.dll, system.web.dll.', - 'assemblyVersion' => 'Associated product/technology version. E.g., .NET Framework 4.5.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dependencies' => 'Prerequisites needed to fulfill steps in article.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'executableLibraryName' => 'Library file name, e.g., mscorlib.dll, system.web.dll.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'proficiencyLevel' => 'Proficiency needed for this content; expected values: \'Beginner\', \'Expert\'.', - 'programmingModel' => 'Indicates whether API is managed or unmanaged.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetPlatform' => 'Type of app development: phone, Metro style, desktop, XBox, etc.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assembly' => 'Library file name, e.g., mscorlib.dll, system.web.dll.', + 'assemblyVersion' => 'Associated product/technology version. E.g., .NET Framework 4.5.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dependencies' => 'Prerequisites needed to fulfill steps in article.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'executableLibraryName' => 'Library file name, e.g., mscorlib.dll, system.web.dll.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'proficiencyLevel' => 'Proficiency needed for this content; expected values: \'Beginner\', \'Expert\'.', + 'programmingModel' => 'Indicates whether API is managed or unmanaged.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetPlatform' => 'Type of app development: phone, Metro style, desktop, XBox, etc.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Abdomen.php b/src/models/jsonld/Abdomen.php index 432a39292..6fe2194be 100644 --- a/src/models/jsonld/Abdomen.php +++ b/src/models/jsonld/Abdomen.php @@ -23,157 +23,157 @@ */ class Abdomen extends MetaJsonLd implements AbdomenInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use AbdomenTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Abdomen'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Abdomen'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Abdomen clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AbdomenTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Abdomen'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Abdomen'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Abdomen clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AboutPage.php b/src/models/jsonld/AboutPage.php index 47a66febd..6ddfa38e4 100644 --- a/src/models/jsonld/AboutPage.php +++ b/src/models/jsonld/AboutPage.php @@ -23,367 +23,367 @@ */ class AboutPage extends MetaJsonLd implements AboutPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use AboutPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use AboutPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AboutPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AboutPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AboutPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AboutPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: About page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: About page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AcceptAction.php b/src/models/jsonld/AcceptAction.php index 7eb39d9d7..862d89cd1 100644 --- a/src/models/jsonld/AcceptAction.php +++ b/src/models/jsonld/AcceptAction.php @@ -24,148 +24,148 @@ */ class AcceptAction extends MetaJsonLd implements AcceptActionInterface, AllocateActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use AcceptActionTrait; - use AllocateActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AcceptAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AcceptAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of committing to/adopting an object.\n\nRelated actions:\n\n* [[RejectAction]]: The antonym of AcceptAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AcceptActionTrait; + use AllocateActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AcceptAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AcceptAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of committing to/adopting an object.\n\nRelated actions:\n\n* [[RejectAction]]: The antonym of AcceptAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Accommodation.php b/src/models/jsonld/Accommodation.php index 663a44ba5..7d07e9b08 100644 --- a/src/models/jsonld/Accommodation.php +++ b/src/models/jsonld/Accommodation.php @@ -29,238 +29,238 @@ */ class Accommodation extends MetaJsonLd implements AccommodationInterface, PlaceInterface, ThingInterface { - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Accommodation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Accommodation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Accommodation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Accommodation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "An accommodation is a place that can accommodate human beings, e.g. a hotel room, a camping pitch, or a meeting room. Many accommodations are for overnight stays, but this is not a mandatory requirement.\nFor more specific types of accommodations not defined in schema.org, one can use additionalType with external vocabularies.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "An accommodation is a place that can accommodate human beings, e.g. a hotel room, a camping pitch, or a meeting room. Many accommodations are for overnight stays, but this is not a mandatory requirement.\nFor more specific types of accommodations not defined in schema.org, one can use additionalType with external vocabularies.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AccountingService.php b/src/models/jsonld/AccountingService.php index faa0c6bc7..0f7776147 100644 --- a/src/models/jsonld/AccountingService.php +++ b/src/models/jsonld/AccountingService.php @@ -24,333 +24,333 @@ */ class AccountingService extends MetaJsonLd implements AccountingServiceInterface, FinancialServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AccountingServiceTrait; - use FinancialServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AccountingServiceTrait; + use FinancialServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AccountingService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AccountingService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AccountingService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AccountingService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Accountancy business.\\n\\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\\(s).\n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Accountancy business.\\n\\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\\(s).\n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AchieveAction.php b/src/models/jsonld/AchieveAction.php index 9bef8dcee..fb0be167a 100644 --- a/src/models/jsonld/AchieveAction.php +++ b/src/models/jsonld/AchieveAction.php @@ -24,146 +24,146 @@ */ class AchieveAction extends MetaJsonLd implements AchieveActionInterface, ActionInterface, ThingInterface { - use AchieveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AchieveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AchieveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AchieveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AchieveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AchieveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Action.php b/src/models/jsonld/Action.php index 2211747ca..6f7c5a623 100644 --- a/src/models/jsonld/Action.php +++ b/src/models/jsonld/Action.php @@ -29,145 +29,145 @@ */ class Action extends MetaJsonLd implements ActionInterface, ThingInterface { - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Action'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Action'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role.\n\nSee also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](https://schema.org/docs/actions.html).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Action'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Action'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role.\n\nSee also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](https://schema.org/docs/actions.html).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ActionAccessSpecification.php b/src/models/jsonld/ActionAccessSpecification.php index a4da83bf6..8ceffa29b 100644 --- a/src/models/jsonld/ActionAccessSpecification.php +++ b/src/models/jsonld/ActionAccessSpecification.php @@ -23,136 +23,136 @@ */ class ActionAccessSpecification extends MetaJsonLd implements ActionAccessSpecificationInterface, IntangibleInterface, ThingInterface { - use ActionAccessSpecificationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ActionAccessSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ActionAccessSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of requirements that must be fulfilled in order to perform an Action.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'availabilityEnds' => ['DateTime', 'Time', 'Date'], - 'availabilityStarts' => ['Date', 'Time', 'DateTime'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', - 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ActionAccessSpecificationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ActionAccessSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ActionAccessSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of requirements that must be fulfilled in order to perform an Action.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'availabilityEnds' => ['DateTime', 'Time', 'Date'], + 'availabilityStarts' => ['Date', 'Time', 'DateTime'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', + 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ActionStatusType.php b/src/models/jsonld/ActionStatusType.php index e3a3c20aa..6099bcb60 100644 --- a/src/models/jsonld/ActionStatusType.php +++ b/src/models/jsonld/ActionStatusType.php @@ -23,126 +23,126 @@ */ class ActionStatusType extends MetaJsonLd implements ActionStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ActionStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ActionStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ActionStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The status of an Action.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ActionStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ActionStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ActionStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The status of an Action.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ActivateAction.php b/src/models/jsonld/ActivateAction.php index cead3034d..365a02a32 100644 --- a/src/models/jsonld/ActivateAction.php +++ b/src/models/jsonld/ActivateAction.php @@ -24,147 +24,147 @@ */ class ActivateAction extends MetaJsonLd implements ActivateActionInterface, ControlActionInterface, ActionInterface, ThingInterface { - use ActivateActionTrait; - use ControlActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ActivateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ActivateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of starting or activating a device or application (e.g. starting a timer or turning on a flashlight).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ActivateActionTrait; + use ControlActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ActivateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ActivateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of starting or activating a device or application (e.g. starting a timer or turning on a flashlight).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ActivationFee.php b/src/models/jsonld/ActivationFee.php index 156dc8e63..fb9a09fe2 100644 --- a/src/models/jsonld/ActivationFee.php +++ b/src/models/jsonld/ActivationFee.php @@ -24,126 +24,126 @@ */ class ActivationFee extends MetaJsonLd implements ActivationFeeInterface, PriceComponentTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ActivationFeeTrait; - use PriceComponentTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ActivationFee'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ActivationFee'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the activation fee part of the total price for an offered product, for example a cellphone contract.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ActivationFeeTrait; + use PriceComponentTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ActivationFee'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ActivationFee'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the activation fee part of the total price for an offered product, for example a cellphone contract.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ActiveActionStatus.php b/src/models/jsonld/ActiveActionStatus.php index 064ae4fac..777468f45 100644 --- a/src/models/jsonld/ActiveActionStatus.php +++ b/src/models/jsonld/ActiveActionStatus.php @@ -24,127 +24,127 @@ */ class ActiveActionStatus extends MetaJsonLd implements ActiveActionStatusInterface, ActionStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ActiveActionStatusTrait; - use ActionStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ActiveActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ActiveActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An in-progress action (e.g., while watching the movie, or driving to a location).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ActiveActionStatusTrait; + use ActionStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ActiveActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ActiveActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An in-progress action (e.g., while watching the movie, or driving to a location).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ActiveNotRecruiting.php b/src/models/jsonld/ActiveNotRecruiting.php index 81aaae92f..ed61d7471 100644 --- a/src/models/jsonld/ActiveNotRecruiting.php +++ b/src/models/jsonld/ActiveNotRecruiting.php @@ -23,127 +23,127 @@ */ class ActiveNotRecruiting extends MetaJsonLd implements ActiveNotRecruitingInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ActiveNotRecruitingTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ActiveNotRecruiting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ActiveNotRecruiting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Active, but not recruiting new participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ActiveNotRecruitingTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ActiveNotRecruiting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ActiveNotRecruiting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Active, but not recruiting new participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AddAction.php b/src/models/jsonld/AddAction.php index dcfec6a9a..982ef7728 100644 --- a/src/models/jsonld/AddAction.php +++ b/src/models/jsonld/AddAction.php @@ -23,151 +23,151 @@ */ class AddAction extends MetaJsonLd implements AddActionInterface, UpdateActionInterface, ActionInterface, ThingInterface { - use AddActionTrait; - use UpdateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AddAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AddAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UpdateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of editing by adding an object to a collection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'collection' => ['Thing'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'targetCollection' => ['Thing'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'collection' => 'A sub property of object. The collection target of the action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'targetCollection' => 'A sub property of object. The collection target of the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AddActionTrait; + use UpdateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AddAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AddAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UpdateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of editing by adding an object to a collection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'collection' => ['Thing'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'targetCollection' => ['Thing'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'collection' => 'A sub property of object. The collection target of the action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'targetCollection' => 'A sub property of object. The collection target of the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AdministrativeArea.php b/src/models/jsonld/AdministrativeArea.php index 79dfad9f2..f75740d51 100644 --- a/src/models/jsonld/AdministrativeArea.php +++ b/src/models/jsonld/AdministrativeArea.php @@ -24,212 +24,212 @@ */ class AdministrativeArea extends MetaJsonLd implements AdministrativeAreaInterface, PlaceInterface, ThingInterface { - use AdministrativeAreaTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AdministrativeArea'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AdministrativeArea'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A geographical region, typically under the jurisdiction of a particular government.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AdministrativeAreaTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AdministrativeArea'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AdministrativeArea'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A geographical region, typically under the jurisdiction of a particular government.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AdultEntertainment.php b/src/models/jsonld/AdultEntertainment.php index 97ac0741c..5ac25fc94 100644 --- a/src/models/jsonld/AdultEntertainment.php +++ b/src/models/jsonld/AdultEntertainment.php @@ -23,331 +23,331 @@ */ class AdultEntertainment extends MetaJsonLd implements AdultEntertainmentInterface, EntertainmentBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AdultEntertainmentTrait; - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AdultEntertainmentTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AdultEntertainment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AdultEntertainment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AdultEntertainment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AdultEntertainment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An adult entertainment establishment.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An adult entertainment establishment.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AdultOrientedEnumeration.php b/src/models/jsonld/AdultOrientedEnumeration.php index ef86f022c..17db8cb52 100644 --- a/src/models/jsonld/AdultOrientedEnumeration.php +++ b/src/models/jsonld/AdultOrientedEnumeration.php @@ -24,125 +24,125 @@ */ class AdultOrientedEnumeration extends MetaJsonLd implements AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AdultOrientedEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumeration of considerations that make a product relevant or potentially restricted for adults only.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AdultOrientedEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumeration of considerations that make a product relevant or potentially restricted for adults only.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AdvertiserContentArticle.php b/src/models/jsonld/AdvertiserContentArticle.php index 5d7f486b8..7f8f75c3d 100644 --- a/src/models/jsonld/AdvertiserContentArticle.php +++ b/src/models/jsonld/AdvertiserContentArticle.php @@ -26,363 +26,363 @@ */ class AdvertiserContentArticle extends MetaJsonLd implements AdvertiserContentArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use AdvertiserContentArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use AdvertiserContentArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AdvertiserContentArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AdvertiserContentArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AdvertiserContentArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AdvertiserContentArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An [[Article]] that an external entity has paid to place or to produce to its specifications. Includes [advertorials](https://en.wikipedia.org/wiki/Advertorial), sponsored content, native advertising and other paid content.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An [[Article]] that an external entity has paid to place or to produce to its specifications. Includes [advertorials](https://en.wikipedia.org/wiki/Advertorial), sponsored content, native advertising and other paid content.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AerobicActivity.php b/src/models/jsonld/AerobicActivity.php index 1e860db7b..07e6e30e5 100644 --- a/src/models/jsonld/AerobicActivity.php +++ b/src/models/jsonld/AerobicActivity.php @@ -25,126 +25,126 @@ */ class AerobicActivity extends MetaJsonLd implements AerobicActivityInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AerobicActivityTrait; - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AerobicActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AerobicActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Physical activity of relatively low intensity that depends primarily on the aerobic energy-generating process; during activity, the aerobic metabolism uses oxygen to adequately meet energy demands during exercise.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AerobicActivityTrait; + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AerobicActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AerobicActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Physical activity of relatively low intensity that depends primarily on the aerobic energy-generating process; during activity, the aerobic metabolism uses oxygen to adequately meet energy demands during exercise.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AggregateOffer.php b/src/models/jsonld/AggregateOffer.php index 687a0c007..743585aa4 100644 --- a/src/models/jsonld/AggregateOffer.php +++ b/src/models/jsonld/AggregateOffer.php @@ -28,233 +28,233 @@ */ class AggregateOffer extends MetaJsonLd implements AggregateOfferInterface, OfferInterface, IntangibleInterface, ThingInterface { - use AggregateOfferTrait; - use OfferTrait; - use IntangibleTrait; - use ThingTrait; + use AggregateOfferTrait; + use OfferTrait; + use IntangibleTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AggregateOffer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AggregateOffer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AggregateOffer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AggregateOffer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Offer'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Offer'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'When a single product is associated with multiple offers (for example, the same pair of shoes is offered by different merchants), then AggregateOffer can be used.\n\nNote: AggregateOffers are normally expected to associate multiple offers that all share the same defined [[businessFunction]] value, or default to http://purl.org/goodrelations/v1#Sell if businessFunction is not explicitly defined.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'When a single product is associated with multiple offers (for example, the same pair of shoes is offered by different merchants), then AggregateOffer can be used.\n\nNote: AggregateOffers are normally expected to associate multiple offers that all share the same defined [[businessFunction]] value, or default to http://purl.org/goodrelations/v1#Sell if businessFunction is not explicitly defined.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], - 'addOn' => ['Offer'], - 'additionalType' => ['URL'], - 'advanceBookingRequirement' => ['QuantitativeValue'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'asin' => ['Text', 'URL'], - 'availability' => ['ItemAvailability'], - 'availabilityEnds' => ['DateTime', 'Time', 'Date'], - 'availabilityStarts' => ['Date', 'Time', 'DateTime'], - 'availableAtOrFrom' => ['Place'], - 'availableDeliveryMethod' => ['DeliveryMethod'], - 'businessFunction' => ['BusinessFunction'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'checkoutPageURLTemplate' => ['Text'], - 'deliveryLeadTime' => ['QuantitativeValue'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleCustomerType' => ['BusinessEntityType'], - 'eligibleDuration' => ['QuantitativeValue'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'highPrice' => ['Number', 'Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includesObject' => ['TypeAndQuantityNode'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'inventoryLevel' => ['QuantitativeValue'], - 'isFamilyFriendly' => ['Boolean'], - 'itemCondition' => ['OfferItemCondition'], - 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'lowPrice' => ['Number', 'Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'mobileUrl' => ['Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'offerCount' => ['Integer'], - 'offeredBy' => ['Organization', 'Person'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'priceValidUntil' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'serialNumber' => ['Text'], - 'shippingDetails' => ['OfferShippingDetails'], - 'sku' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'warranty' => ['WarrantyPromise'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], + 'addOn' => ['Offer'], + 'additionalType' => ['URL'], + 'advanceBookingRequirement' => ['QuantitativeValue'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'asin' => ['Text', 'URL'], + 'availability' => ['ItemAvailability'], + 'availabilityEnds' => ['DateTime', 'Time', 'Date'], + 'availabilityStarts' => ['Date', 'Time', 'DateTime'], + 'availableAtOrFrom' => ['Place'], + 'availableDeliveryMethod' => ['DeliveryMethod'], + 'businessFunction' => ['BusinessFunction'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'checkoutPageURLTemplate' => ['Text'], + 'deliveryLeadTime' => ['QuantitativeValue'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleCustomerType' => ['BusinessEntityType'], + 'eligibleDuration' => ['QuantitativeValue'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'highPrice' => ['Number', 'Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includesObject' => ['TypeAndQuantityNode'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'inventoryLevel' => ['QuantitativeValue'], + 'isFamilyFriendly' => ['Boolean'], + 'itemCondition' => ['OfferItemCondition'], + 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'lowPrice' => ['Number', 'Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'mobileUrl' => ['Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'offerCount' => ['Integer'], + 'offeredBy' => ['Organization', 'Person'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'priceValidUntil' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'serialNumber' => ['Text'], + 'shippingDetails' => ['OfferShippingDetails'], + 'sku' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'warranty' => ['WarrantyPromise'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', - 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', - '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.', - 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', - 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', - 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', - 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', - 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', - 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', - 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', - 'description' => 'A description of the item.', - '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.', - 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', - 'eligibleDuration' => 'The duration for which the given offer is valid.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'highPrice' => 'The highest price of all offers available. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'inventoryLevel' => 'The current approximate inventory level for the item or items.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'lowPrice' => 'The lowest price of all offers available. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - '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.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'offerCount' => 'The number of offers for the product.', - 'offeredBy' => 'A pointer to the organization or person making the offer.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - 'priceValidUntil' => 'The date after which the price is no longer available.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', - 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'warranty' => 'The warranty promise(s) included in the offer.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', + 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', + '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.', + 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', + 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', + 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', + 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', + 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', + 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', + 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', + 'description' => 'A description of the item.', + '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.', + 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', + 'eligibleDuration' => 'The duration for which the given offer is valid.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'highPrice' => 'The highest price of all offers available. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'inventoryLevel' => 'The current approximate inventory level for the item or items.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'lowPrice' => 'The lowest price of all offers available. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + '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.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'offerCount' => 'The number of offers for the product.', + 'offeredBy' => 'A pointer to the organization or person making the offer.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + 'priceValidUntil' => 'The date after which the price is no longer available.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', + 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'warranty' => 'The warranty promise(s) included in the offer.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AggregateRating.php b/src/models/jsonld/AggregateRating.php index 3f59083c4..9b272db5b 100644 --- a/src/models/jsonld/AggregateRating.php +++ b/src/models/jsonld/AggregateRating.php @@ -23,141 +23,141 @@ */ class AggregateRating extends MetaJsonLd implements AggregateRatingInterface, RatingInterface, IntangibleInterface, ThingInterface { - use AggregateRatingTrait; - use RatingTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AggregateRating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AggregateRating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Rating'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The average rating based on multiple ratings or reviews.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'author' => ['Organization', 'Person'], - 'bestRating' => ['Text', 'Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itemReviewed' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'ratingCount' => ['Integer'], - 'ratingExplanation' => ['Text'], - 'ratingValue' => ['Number', 'Text'], - 'reviewAspect' => ['Text'], - 'reviewCount' => ['Integer'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'worstRating' => ['Text', 'Number'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'ratingCount' => 'The count of total number of ratings.', - 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', - 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewCount' => 'The count of total number of reviews.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AggregateRatingTrait; + use RatingTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AggregateRating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AggregateRating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Rating'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The average rating based on multiple ratings or reviews.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'author' => ['Organization', 'Person'], + 'bestRating' => ['Text', 'Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itemReviewed' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'ratingCount' => ['Integer'], + 'ratingExplanation' => ['Text'], + 'ratingValue' => ['Number', 'Text'], + 'reviewAspect' => ['Text'], + 'reviewCount' => ['Integer'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'worstRating' => ['Text', 'Number'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'ratingCount' => 'The count of total number of ratings.', + 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', + 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewCount' => 'The count of total number of reviews.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AgreeAction.php b/src/models/jsonld/AgreeAction.php index 2642784a7..4654badd7 100644 --- a/src/models/jsonld/AgreeAction.php +++ b/src/models/jsonld/AgreeAction.php @@ -25,148 +25,148 @@ */ class AgreeAction extends MetaJsonLd implements AgreeActionInterface, ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use AgreeActionTrait; - use ReactActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AgreeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AgreeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of expressing a consistency of opinion with the object. An agent agrees to/about an object (a proposition, topic or theme) with participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AgreeActionTrait; + use ReactActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AgreeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AgreeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of expressing a consistency of opinion with the object. An agent agrees to/about an object (a proposition, topic or theme) with participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Airline.php b/src/models/jsonld/Airline.php index 27d38113b..ce024a6e2 100644 --- a/src/models/jsonld/Airline.php +++ b/src/models/jsonld/Airline.php @@ -23,258 +23,258 @@ */ class Airline extends MetaJsonLd implements AirlineInterface, OrganizationInterface, ThingInterface { - use AirlineTrait; - use OrganizationTrait; - use ThingTrait; + use AirlineTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Airline'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Airline'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Airline'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Airline'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An organization that provides flights for passengers.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An organization that provides flights for passengers.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'boardingPolicy' => ['BoardingPolicyType'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'iataCode' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'boardingPolicy' => ['BoardingPolicyType'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'iataCode' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'boardingPolicy' => 'The type of boarding policy used by the airline (e.g. zone-based or group-based).', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'iataCode' => 'IATA identifier for an airline or airport.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'boardingPolicy' => 'The type of boarding policy used by the airline (e.g. zone-based or group-based).', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'iataCode' => 'IATA identifier for an airline or airport.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Airport.php b/src/models/jsonld/Airport.php index bedecdbbe..d0479f510 100644 --- a/src/models/jsonld/Airport.php +++ b/src/models/jsonld/Airport.php @@ -23,219 +23,219 @@ */ class Airport extends MetaJsonLd implements AirportInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use AirportTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Airport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Airport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An airport.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'iataCode' => ['Text'], - 'icaoCode' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'iataCode' => 'IATA identifier for an airline or airport.', - 'icaoCode' => 'ICAO identifier for an airport.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AirportTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Airport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Airport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An airport.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'iataCode' => ['Text'], + 'icaoCode' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'iataCode' => 'IATA identifier for an airline or airport.', + 'icaoCode' => 'ICAO identifier for an airport.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AlbumRelease.php b/src/models/jsonld/AlbumRelease.php index 75ea607c5..bc9b21708 100644 --- a/src/models/jsonld/AlbumRelease.php +++ b/src/models/jsonld/AlbumRelease.php @@ -23,126 +23,126 @@ */ class AlbumRelease extends MetaJsonLd implements AlbumReleaseInterface, MusicAlbumReleaseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AlbumReleaseTrait; - use MusicAlbumReleaseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AlbumRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AlbumRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'AlbumRelease.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AlbumReleaseTrait; + use MusicAlbumReleaseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AlbumRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AlbumRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'AlbumRelease.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AlcoholConsideration.php b/src/models/jsonld/AlcoholConsideration.php index dc031a579..c9f37b4b6 100644 --- a/src/models/jsonld/AlcoholConsideration.php +++ b/src/models/jsonld/AlcoholConsideration.php @@ -23,126 +23,126 @@ */ class AlcoholConsideration extends MetaJsonLd implements AlcoholConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AlcoholConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AlcoholConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AlcoholConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Item contains alcohol or promotes alcohol consumption.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AlcoholConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AlcoholConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AlcoholConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Item contains alcohol or promotes alcohol consumption.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AlignmentObject.php b/src/models/jsonld/AlignmentObject.php index 0b788c24a..f51cddaad 100644 --- a/src/models/jsonld/AlignmentObject.php +++ b/src/models/jsonld/AlignmentObject.php @@ -27,132 +27,132 @@ */ class AlignmentObject extends MetaJsonLd implements AlignmentObjectInterface, IntangibleInterface, ThingInterface { - use AlignmentObjectTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AlignmentObject'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AlignmentObject'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "An intangible item that describes an alignment between a learning resource and a node in an educational framework.\n\nShould not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alignmentType' => ['Text'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'educationalFramework' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetDescription' => ['Text'], - 'targetName' => ['Text'], - 'targetUrl' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alignmentType' => 'A category of alignment between the learning resource and the framework node. Recommended values include: \'requires\', \'textComplexity\', \'readingLevel\', and \'educationalSubject\'.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'educationalFramework' => 'The framework to which the resource being described is aligned.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetDescription' => 'The description of a node in an established educational framework.', - 'targetName' => 'The name of a node in an established educational framework.', - 'targetUrl' => 'The URL of a node in an established educational framework.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AlignmentObjectTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AlignmentObject'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AlignmentObject'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "An intangible item that describes an alignment between a learning resource and a node in an educational framework.\n\nShould not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alignmentType' => ['Text'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'educationalFramework' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetDescription' => ['Text'], + 'targetName' => ['Text'], + 'targetUrl' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alignmentType' => 'A category of alignment between the learning resource and the framework node. Recommended values include: \'requires\', \'textComplexity\', \'readingLevel\', and \'educationalSubject\'.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'educationalFramework' => 'The framework to which the resource being described is aligned.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetDescription' => 'The description of a node in an established educational framework.', + 'targetName' => 'The name of a node in an established educational framework.', + 'targetUrl' => 'The URL of a node in an established educational framework.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AllWheelDriveConfiguration.php b/src/models/jsonld/AllWheelDriveConfiguration.php index 023cf5aeb..9980f2f1e 100644 --- a/src/models/jsonld/AllWheelDriveConfiguration.php +++ b/src/models/jsonld/AllWheelDriveConfiguration.php @@ -24,143 +24,143 @@ */ class AllWheelDriveConfiguration extends MetaJsonLd implements AllWheelDriveConfigurationInterface, DriveWheelConfigurationValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AllWheelDriveConfigurationTrait; - use DriveWheelConfigurationValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AllWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AllWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'All-wheel Drive is a transmission layout where the engine drives all four wheels.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AllWheelDriveConfigurationTrait; + use DriveWheelConfigurationValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AllWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AllWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'All-wheel Drive is a transmission layout where the engine drives all four wheels.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AllergiesHealthAspect.php b/src/models/jsonld/AllergiesHealthAspect.php index 306d8a0de..507359bd4 100644 --- a/src/models/jsonld/AllergiesHealthAspect.php +++ b/src/models/jsonld/AllergiesHealthAspect.php @@ -23,126 +23,126 @@ */ class AllergiesHealthAspect extends MetaJsonLd implements AllergiesHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AllergiesHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AllergiesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AllergiesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about the allergy-related aspects of a health topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AllergiesHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AllergiesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AllergiesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about the allergy-related aspects of a health topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AllocateAction.php b/src/models/jsonld/AllocateAction.php index 3c50319a2..de5ebe952 100644 --- a/src/models/jsonld/AllocateAction.php +++ b/src/models/jsonld/AllocateAction.php @@ -23,147 +23,147 @@ */ class AllocateAction extends MetaJsonLd implements AllocateActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use AllocateActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AllocateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AllocateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of organizing tasks/objects/events by associating resources to it.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AllocateActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AllocateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AllocateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of organizing tasks/objects/events by associating resources to it.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AmpStory.php b/src/models/jsonld/AmpStory.php index 781b4450e..c4dc8d793 100644 --- a/src/models/jsonld/AmpStory.php +++ b/src/models/jsonld/AmpStory.php @@ -24,383 +24,383 @@ */ class AmpStory extends MetaJsonLd implements AmpStoryInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use AmpStoryTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use AmpStoryTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AmpStory'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AmpStory'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AmpStory'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AmpStory'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A creative work with a visual storytelling format intended to be viewed online, particularly on mobile devices.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A creative work with a visual storytelling format intended to be viewed online, particularly on mobile devices.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AmusementPark.php b/src/models/jsonld/AmusementPark.php index e6ec10847..b6fd7f4f6 100644 --- a/src/models/jsonld/AmusementPark.php +++ b/src/models/jsonld/AmusementPark.php @@ -23,331 +23,331 @@ */ class AmusementPark extends MetaJsonLd implements AmusementParkInterface, EntertainmentBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AmusementParkTrait; - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AmusementParkTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AmusementPark'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AmusementPark'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AmusementPark'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AmusementPark'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An amusement park.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An amusement park.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AnaerobicActivity.php b/src/models/jsonld/AnaerobicActivity.php index ee3928f54..792044440 100644 --- a/src/models/jsonld/AnaerobicActivity.php +++ b/src/models/jsonld/AnaerobicActivity.php @@ -24,126 +24,126 @@ */ class AnaerobicActivity extends MetaJsonLd implements AnaerobicActivityInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AnaerobicActivityTrait; - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AnaerobicActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AnaerobicActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Physical activity that is of high-intensity which utilizes the anaerobic metabolism of the body.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AnaerobicActivityTrait; + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AnaerobicActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AnaerobicActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Physical activity that is of high-intensity which utilizes the anaerobic metabolism of the body.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AnalysisNewsArticle.php b/src/models/jsonld/AnalysisNewsArticle.php index 6a155612b..2d686987d 100644 --- a/src/models/jsonld/AnalysisNewsArticle.php +++ b/src/models/jsonld/AnalysisNewsArticle.php @@ -25,374 +25,374 @@ */ class AnalysisNewsArticle extends MetaJsonLd implements AnalysisNewsArticleInterface, NewsArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use AnalysisNewsArticleTrait; - use NewsArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use AnalysisNewsArticleTrait; + use NewsArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AnalysisNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AnalysisNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AnalysisNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AnalysisNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An AnalysisNewsArticle is a [[NewsArticle]] that, while based on factual reporting, incorporates the expertise of the author/producer, offering interpretations and conclusions.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An AnalysisNewsArticle is a [[NewsArticle]] that, while based on factual reporting, incorporates the expertise of the author/producer, offering interpretations and conclusions.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateline' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'printColumn' => ['Text'], - 'printEdition' => ['Text'], - 'printPage' => ['Text'], - 'printSection' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateline' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'printColumn' => ['Text'], + 'printEdition' => ['Text'], + 'printPage' => ['Text'], + 'printSection' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', - 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', - 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', - 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', + 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', + 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', + 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AnatomicalStructure.php b/src/models/jsonld/AnatomicalStructure.php index c413d597e..b349ebc31 100644 --- a/src/models/jsonld/AnatomicalStructure.php +++ b/src/models/jsonld/AnatomicalStructure.php @@ -24,154 +24,154 @@ */ class AnatomicalStructure extends MetaJsonLd implements AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AnatomicalStructure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AnatomicalStructure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AnatomicalStructure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AnatomicalStructure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any part of the human body, typically a component of an anatomical system. Organs, tissues, and cells are all anatomical structures.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AnatomicalSystem.php b/src/models/jsonld/AnatomicalSystem.php index 12174e60d..882f5667f 100644 --- a/src/models/jsonld/AnatomicalSystem.php +++ b/src/models/jsonld/AnatomicalSystem.php @@ -28,148 +28,148 @@ */ class AnatomicalSystem extends MetaJsonLd implements AnatomicalSystemInterface, MedicalEntityInterface, ThingInterface { - use AnatomicalSystemTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AnatomicalSystem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AnatomicalSystem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An anatomical system is a group of anatomical structures that work together to perform a certain task. Anatomical systems, such as organ systems, are one organizing principle of anatomy, and can include circulatory, digestive, endocrine, integumentary, immune, lymphatic, muscular, nervous, reproductive, respiratory, skeletal, urinary, vestibular, and other systems.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'code' => ['MedicalCode'], - 'comprisedOf' => ['AnatomicalStructure', 'AnatomicalSystem'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedStructure' => ['AnatomicalStructure'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'comprisedOf' => 'Specifying something physically contained by something else. Typically used here for the underlying anatomical structures, such as organs, that comprise the anatomical system.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedStructure' => 'Related anatomical structure(s) that are not part of the system but relate or connect to it, such as vascular bundles associated with an organ system.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AnatomicalSystemTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AnatomicalSystem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AnatomicalSystem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An anatomical system is a group of anatomical structures that work together to perform a certain task. Anatomical systems, such as organ systems, are one organizing principle of anatomy, and can include circulatory, digestive, endocrine, integumentary, immune, lymphatic, muscular, nervous, reproductive, respiratory, skeletal, urinary, vestibular, and other systems.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'code' => ['MedicalCode'], + 'comprisedOf' => ['AnatomicalStructure', 'AnatomicalSystem'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedStructure' => ['AnatomicalStructure'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'comprisedOf' => 'Specifying something physically contained by something else. Typically used here for the underlying anatomical structures, such as organs, that comprise the anatomical system.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedStructure' => 'Related anatomical structure(s) that are not part of the system but relate or connect to it, such as vascular bundles associated with an organ system.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AndroidPlatform.php b/src/models/jsonld/AndroidPlatform.php index 96a2182a8..88c058416 100644 --- a/src/models/jsonld/AndroidPlatform.php +++ b/src/models/jsonld/AndroidPlatform.php @@ -23,126 +23,126 @@ */ class AndroidPlatform extends MetaJsonLd implements AndroidPlatformInterface, DigitalPlatformEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AndroidPlatformTrait; - use DigitalPlatformEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AndroidPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AndroidPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the broad notion of Android-based operating systems.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AndroidPlatformTrait; + use DigitalPlatformEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AndroidPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AndroidPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the broad notion of Android-based operating systems.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Anesthesia.php b/src/models/jsonld/Anesthesia.php index 81964253b..7a2325f01 100644 --- a/src/models/jsonld/Anesthesia.php +++ b/src/models/jsonld/Anesthesia.php @@ -24,128 +24,128 @@ */ class Anesthesia extends MetaJsonLd implements AnesthesiaInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use AnesthesiaTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Anesthesia'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Anesthesia'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to study of anesthetics and their application.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AnesthesiaTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Anesthesia'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Anesthesia'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to study of anesthetics and their application.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AnimalShelter.php b/src/models/jsonld/AnimalShelter.php index 603563935..67252bb9c 100644 --- a/src/models/jsonld/AnimalShelter.php +++ b/src/models/jsonld/AnimalShelter.php @@ -23,330 +23,330 @@ */ class AnimalShelter extends MetaJsonLd implements AnimalShelterInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AnimalShelterTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AnimalShelterTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AnimalShelter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AnimalShelter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AnimalShelter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AnimalShelter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Animal shelter.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Animal shelter.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Answer.php b/src/models/jsonld/Answer.php index c57d0b359..7d6838692 100644 --- a/src/models/jsonld/Answer.php +++ b/src/models/jsonld/Answer.php @@ -24,355 +24,355 @@ */ class Answer extends MetaJsonLd implements AnswerInterface, CommentInterface, CreativeWorkInterface, ThingInterface { - use AnswerTrait; - use CommentTrait; - use CreativeWorkTrait; - use ThingTrait; + use AnswerTrait; + use CommentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Answer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Answer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Answer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Answer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Comment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Comment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An answer offered to a question; perhaps correct, perhaps opinionated or wrong.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An answer offered to a question; perhaps correct, perhaps opinionated or wrong.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'answerExplanation' => ['Comment', 'WebContent'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downvoteCount' => ['Integer'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'parentItem' => ['Comment'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'upvoteCount' => ['Integer'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'answerExplanation' => ['Comment', 'WebContent'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downvoteCount' => ['Integer'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'parentItem' => ['Comment'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'upvoteCount' => ['Integer'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'answerExplanation' => 'A step-by-step or full explanation about Answer. Can outline how this Answer was achieved or contain more broad clarification or statement about it. ', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'parentItem' => 'The parent of a question, answer or item in general.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'answerExplanation' => 'A step-by-step or full explanation about Answer. Can outline how this Answer was achieved or contain more broad clarification or statement about it. ', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'parentItem' => 'The parent of a question, answer or item in general.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Apartment.php b/src/models/jsonld/Apartment.php index 698c4cff8..172914301 100644 --- a/src/models/jsonld/Apartment.php +++ b/src/models/jsonld/Apartment.php @@ -27,241 +27,241 @@ */ class Apartment extends MetaJsonLd implements ApartmentInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use ApartmentTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use ApartmentTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Apartment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Apartment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Apartment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Apartment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An apartment (in American English) or flat (in British English) is a self-contained housing unit (a type of residential real estate) that occupies only part of a building (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Apartment).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An apartment (in American English) or flat (in British English) is a self-contained housing unit (a type of residential real estate) that occupies only part of a building (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Apartment).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'occupancy' => ['QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'occupancy' => ['QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ApartmentComplex.php b/src/models/jsonld/ApartmentComplex.php index 18abc635e..e1b4abe65 100644 --- a/src/models/jsonld/ApartmentComplex.php +++ b/src/models/jsonld/ApartmentComplex.php @@ -23,223 +23,223 @@ */ class ApartmentComplex extends MetaJsonLd implements ApartmentComplexInterface, ResidenceInterface, PlaceInterface, ThingInterface { - use ApartmentComplexTrait; - use ResidenceTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ApartmentComplex'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ApartmentComplex'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Residence'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Residence type: Apartment complex.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfAccommodationUnits' => ['QuantitativeValue'], - 'numberOfAvailableAccommodationUnits' => ['QuantitativeValue'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfAccommodationUnits' => 'Indicates the total (available plus unavailable) number of accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAvailableAccommodationUnits]].', - 'numberOfAvailableAccommodationUnits' => 'Indicates the number of available accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAccommodationUnits]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ApartmentComplexTrait; + use ResidenceTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ApartmentComplex'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ApartmentComplex'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Residence'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Residence type: Apartment complex.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfAccommodationUnits' => ['QuantitativeValue'], + 'numberOfAvailableAccommodationUnits' => ['QuantitativeValue'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfAccommodationUnits' => 'Indicates the total (available plus unavailable) number of accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAvailableAccommodationUnits]].', + 'numberOfAvailableAccommodationUnits' => 'Indicates the number of available accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAccommodationUnits]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Appearance.php b/src/models/jsonld/Appearance.php index b1e718b0c..6fc16c912 100644 --- a/src/models/jsonld/Appearance.php +++ b/src/models/jsonld/Appearance.php @@ -23,157 +23,157 @@ */ class Appearance extends MetaJsonLd implements AppearanceInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use AppearanceTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Appearance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Appearance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Appearance assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AppearanceTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Appearance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Appearance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Appearance assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AppendAction.php b/src/models/jsonld/AppendAction.php index 3b3aaceae..d72fac4de 100644 --- a/src/models/jsonld/AppendAction.php +++ b/src/models/jsonld/AppendAction.php @@ -23,155 +23,155 @@ */ class AppendAction extends MetaJsonLd implements AppendActionInterface, InsertActionInterface, AddActionInterface, UpdateActionInterface, ActionInterface, ThingInterface { - use AppendActionTrait; - use InsertActionTrait; - use AddActionTrait; - use UpdateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AppendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AppendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InsertAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of inserting at the end if an ordered collection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'collection' => ['Thing'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'targetCollection' => ['Thing'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'collection' => 'A sub property of object. The collection target of the action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'targetCollection' => 'A sub property of object. The collection target of the action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AppendActionTrait; + use InsertActionTrait; + use AddActionTrait; + use UpdateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AppendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AppendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InsertAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of inserting at the end if an ordered collection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'collection' => ['Thing'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'targetCollection' => ['Thing'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'collection' => 'A sub property of object. The collection target of the action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'targetCollection' => 'A sub property of object. The collection target of the action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ApplyAction.php b/src/models/jsonld/ApplyAction.php index 4c43e7410..5e1e14c28 100644 --- a/src/models/jsonld/ApplyAction.php +++ b/src/models/jsonld/ApplyAction.php @@ -25,147 +25,147 @@ */ class ApplyAction extends MetaJsonLd implements ApplyActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use ApplyActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ApplyAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ApplyAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of registering to an organization/service without the guarantee to receive it.\n\nRelated actions:\n\n* [[RegisterAction]]: Unlike RegisterAction, ApplyAction has no guarantees that the application will be accepted.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ApplyActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ApplyAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ApplyAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of registering to an organization/service without the guarantee to receive it.\n\nRelated actions:\n\n* [[RegisterAction]]: Unlike RegisterAction, ApplyAction has no guarantees that the application will be accepted.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ApprovedIndication.php b/src/models/jsonld/ApprovedIndication.php index 4d96ddc66..1a0320339 100644 --- a/src/models/jsonld/ApprovedIndication.php +++ b/src/models/jsonld/ApprovedIndication.php @@ -25,139 +25,139 @@ */ class ApprovedIndication extends MetaJsonLd implements ApprovedIndicationInterface, MedicalIndicationInterface, MedicalEntityInterface, ThingInterface { - use ApprovedIndicationTrait; - use MedicalIndicationTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ApprovedIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ApprovedIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIndication'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An indication for a medical therapy that has been formally specified or approved by a regulatory body that regulates use of the therapy; for example, the US FDA approves indications for most drugs in the US.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ApprovedIndicationTrait; + use MedicalIndicationTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ApprovedIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ApprovedIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIndication'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An indication for a medical therapy that has been formally specified or approved by a regulatory body that regulates use of the therapy; for example, the US FDA approves indications for most drugs in the US.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Aquarium.php b/src/models/jsonld/Aquarium.php index 1e995a575..5d740f7fc 100644 --- a/src/models/jsonld/Aquarium.php +++ b/src/models/jsonld/Aquarium.php @@ -23,215 +23,215 @@ */ class Aquarium extends MetaJsonLd implements AquariumInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use AquariumTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Aquarium'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Aquarium'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Aquarium.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AquariumTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Aquarium'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Aquarium'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Aquarium.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ArchiveComponent.php b/src/models/jsonld/ArchiveComponent.php index 555e4a62c..880772221 100644 --- a/src/models/jsonld/ArchiveComponent.php +++ b/src/models/jsonld/ArchiveComponent.php @@ -24,350 +24,350 @@ */ class ArchiveComponent extends MetaJsonLd implements ArchiveComponentInterface, CreativeWorkInterface, ThingInterface { - use ArchiveComponentTrait; - use CreativeWorkTrait; - use ThingTrait; + use ArchiveComponentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ArchiveComponent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ArchiveComponent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ArchiveComponent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ArchiveComponent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An intangible type to be applied to any archive content, carrying with it a set of properties required to describe archival items and collections.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An intangible type to be applied to any archive content, carrying with it a set of properties required to describe archival items and collections.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'holdingArchive' => ['ArchiveOrganization'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemLocation' => ['Place', 'Text', 'PostalAddress'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'holdingArchive' => ['ArchiveOrganization'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemLocation' => ['Place', 'Text', 'PostalAddress'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'holdingArchive' => '[[ArchiveOrganization]] that holds, keeps or maintains the [[ArchiveComponent]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemLocation' => 'Current location of the item.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'holdingArchive' => '[[ArchiveOrganization]] that holds, keeps or maintains the [[ArchiveComponent]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemLocation' => 'Current location of the item.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ArchiveOrganization.php b/src/models/jsonld/ArchiveOrganization.php index 1739fb9eb..8f82839f1 100644 --- a/src/models/jsonld/ArchiveOrganization.php +++ b/src/models/jsonld/ArchiveOrganization.php @@ -25,332 +25,332 @@ */ class ArchiveOrganization extends MetaJsonLd implements ArchiveOrganizationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ArchiveOrganizationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ArchiveOrganizationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ArchiveOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ArchiveOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ArchiveOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ArchiveOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An organization with archival holdings. An organization which keeps and preserves archival material and typically makes it accessible to the public.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An organization with archival holdings. An organization which keeps and preserves archival material and typically makes it accessible to the public.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'archiveHeld' => ['ArchiveComponent'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'archiveHeld' => ['ArchiveComponent'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'archiveHeld' => 'Collection, [fonds](https://en.wikipedia.org/wiki/Fonds), or item held, kept or maintained by an [[ArchiveOrganization]].', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'archiveHeld' => 'Collection, [fonds](https://en.wikipedia.org/wiki/Fonds), or item held, kept or maintained by an [[ArchiveOrganization]].', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ArriveAction.php b/src/models/jsonld/ArriveAction.php index 93c564d71..dfee58316 100644 --- a/src/models/jsonld/ArriveAction.php +++ b/src/models/jsonld/ArriveAction.php @@ -24,151 +24,151 @@ */ class ArriveAction extends MetaJsonLd implements ArriveActionInterface, MoveActionInterface, ActionInterface, ThingInterface { - use ArriveActionTrait; - use MoveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ArriveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ArriveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MoveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of arriving at a place. An agent arrives at a destination from a fromLocation, optionally with participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ArriveActionTrait; + use MoveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ArriveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ArriveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MoveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of arriving at a place. An agent arrives at a destination from a fromLocation, optionally with participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ArtGallery.php b/src/models/jsonld/ArtGallery.php index 0d14e6545..9e1643988 100644 --- a/src/models/jsonld/ArtGallery.php +++ b/src/models/jsonld/ArtGallery.php @@ -23,331 +23,331 @@ */ class ArtGallery extends MetaJsonLd implements ArtGalleryInterface, EntertainmentBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ArtGalleryTrait; - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ArtGalleryTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ArtGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ArtGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ArtGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ArtGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An art gallery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An art gallery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Artery.php b/src/models/jsonld/Artery.php index 58460afc3..b2103fb92 100644 --- a/src/models/jsonld/Artery.php +++ b/src/models/jsonld/Artery.php @@ -23,160 +23,160 @@ */ class Artery extends MetaJsonLd implements ArteryInterface, VesselInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use ArteryTrait; - use VesselTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Artery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Artery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Vessel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of blood vessel that specifically carries blood away from the heart.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'arterialBranch' => ['AnatomicalStructure'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supplyTo' => ['AnatomicalStructure'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'arterialBranch' => 'The branches that comprise the arterial structure.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supplyTo' => 'The area to which the artery supplies blood.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ArteryTrait; + use VesselTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Artery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Artery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Vessel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of blood vessel that specifically carries blood away from the heart.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'arterialBranch' => ['AnatomicalStructure'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supplyTo' => ['AnatomicalStructure'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'arterialBranch' => 'The branches that comprise the arterial structure.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supplyTo' => 'The area to which the artery supplies blood.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Article.php b/src/models/jsonld/Article.php index f05ce6e0e..76d3dfaf5 100644 --- a/src/models/jsonld/Article.php +++ b/src/models/jsonld/Article.php @@ -26,362 +26,362 @@ */ class Article extends MetaJsonLd implements ArticleInterface, CreativeWorkInterface, ThingInterface { - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Article'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Article'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Article'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Article'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AskAction.php b/src/models/jsonld/AskAction.php index 1880be5b5..25d3b56d3 100644 --- a/src/models/jsonld/AskAction.php +++ b/src/models/jsonld/AskAction.php @@ -24,158 +24,158 @@ */ class AskAction extends MetaJsonLd implements AskActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use AskActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AskAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AskAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of posing a question / favor to someone.\n\nRelated actions:\n\n* [[ReplyAction]]: Appears generally as a response to AskAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'question' => ['Question'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'question' => 'A sub property of object. A question.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AskActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AskAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AskAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of posing a question / favor to someone.\n\nRelated actions:\n\n* [[ReplyAction]]: Appears generally as a response to AskAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'question' => ['Question'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'question' => 'A sub property of object. A question.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AskPublicNewsArticle.php b/src/models/jsonld/AskPublicNewsArticle.php index 3865e7fba..8888f6482 100644 --- a/src/models/jsonld/AskPublicNewsArticle.php +++ b/src/models/jsonld/AskPublicNewsArticle.php @@ -25,374 +25,374 @@ */ class AskPublicNewsArticle extends MetaJsonLd implements AskPublicNewsArticleInterface, NewsArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use AskPublicNewsArticleTrait; - use NewsArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use AskPublicNewsArticleTrait; + use NewsArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AskPublicNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AskPublicNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AskPublicNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AskPublicNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[NewsArticle]] expressing an open call by a [[NewsMediaOrganization]] asking the public for input, insights, clarifications, anecdotes, documentation, etc., on an issue, for reporting purposes.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[NewsArticle]] expressing an open call by a [[NewsMediaOrganization]] asking the public for input, insights, clarifications, anecdotes, documentation, etc., on an issue, for reporting purposes.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateline' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'printColumn' => ['Text'], - 'printEdition' => ['Text'], - 'printPage' => ['Text'], - 'printSection' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateline' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'printColumn' => ['Text'], + 'printEdition' => ['Text'], + 'printPage' => ['Text'], + 'printSection' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', - 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', - 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', - 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', + 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', + 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', + 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AssessAction.php b/src/models/jsonld/AssessAction.php index bdb17eb56..5197ac6ba 100644 --- a/src/models/jsonld/AssessAction.php +++ b/src/models/jsonld/AssessAction.php @@ -23,146 +23,146 @@ */ class AssessAction extends MetaJsonLd implements AssessActionInterface, ActionInterface, ThingInterface { - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AssessAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AssessAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of forming one\'s opinion, reaction or sentiment.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AssessAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AssessAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of forming one\'s opinion, reaction or sentiment.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AssignAction.php b/src/models/jsonld/AssignAction.php index a1a36dae9..7119e2983 100644 --- a/src/models/jsonld/AssignAction.php +++ b/src/models/jsonld/AssignAction.php @@ -24,148 +24,148 @@ */ class AssignAction extends MetaJsonLd implements AssignActionInterface, AllocateActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use AssignActionTrait; - use AllocateActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AssignAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AssignAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of allocating an action/event/task to some destination (someone or something).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AssignActionTrait; + use AllocateActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AssignAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AssignAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of allocating an action/event/task to some destination (someone or something).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Atlas.php b/src/models/jsonld/Atlas.php index d1b4390a9..905445b57 100644 --- a/src/models/jsonld/Atlas.php +++ b/src/models/jsonld/Atlas.php @@ -24,346 +24,346 @@ */ class Atlas extends MetaJsonLd implements AtlasInterface, CreativeWorkInterface, ThingInterface { - use AtlasTrait; - use CreativeWorkTrait; - use ThingTrait; + use AtlasTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Atlas'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Atlas'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Atlas'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Atlas'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A collection or bound volume of maps, charts, plates or tables, physical or in media form illustrating any subject.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A collection or bound volume of maps, charts, plates or tables, physical or in media form illustrating any subject.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Attorney.php b/src/models/jsonld/Attorney.php index e12333e57..6702d72f7 100644 --- a/src/models/jsonld/Attorney.php +++ b/src/models/jsonld/Attorney.php @@ -24,331 +24,331 @@ */ class Attorney extends MetaJsonLd implements AttorneyInterface, LegalServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AttorneyTrait; - use LegalServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AttorneyTrait; + use LegalServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Attorney'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Attorney'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Attorney'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Attorney'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Professional service: Attorney. \n\nThis type is deprecated - [[LegalService]] is more inclusive and less ambiguous.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Professional service: Attorney. \n\nThis type is deprecated - [[LegalService]] is more inclusive and less ambiguous.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Audience.php b/src/models/jsonld/Audience.php index 9c258aaa1..e42dc50e4 100644 --- a/src/models/jsonld/Audience.php +++ b/src/models/jsonld/Audience.php @@ -24,126 +24,126 @@ */ class Audience extends MetaJsonLd implements AudienceInterface, IntangibleInterface, ThingInterface { - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Audience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Audience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Intended audience for an item, i.e. the group for whom the item was created.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'audienceType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'geographicArea' => ['AdministrativeArea'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'description' => 'A description of the item.', - '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.', - 'geographicArea' => 'The geographic area associated with the audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Audience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Audience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Intended audience for an item, i.e. the group for whom the item was created.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'audienceType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'geographicArea' => ['AdministrativeArea'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'description' => 'A description of the item.', + '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.', + 'geographicArea' => 'The geographic area associated with the audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AudioObject.php b/src/models/jsonld/AudioObject.php index 2a851349c..286344577 100644 --- a/src/models/jsonld/AudioObject.php +++ b/src/models/jsonld/AudioObject.php @@ -23,389 +23,389 @@ */ class AudioObject extends MetaJsonLd implements AudioObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use AudioObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use AudioObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AudioObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AudioObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AudioObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AudioObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An audio file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An audio file.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'transcript' => ['Text'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'transcript' => ['Text'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AudioObjectSnapshot.php b/src/models/jsonld/AudioObjectSnapshot.php index 491891e50..b0f1b43ee 100644 --- a/src/models/jsonld/AudioObjectSnapshot.php +++ b/src/models/jsonld/AudioObjectSnapshot.php @@ -28,390 +28,390 @@ */ class AudioObjectSnapshot extends MetaJsonLd implements AudioObjectSnapshotInterface, AudioObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use AudioObjectSnapshotTrait; - use AudioObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use AudioObjectSnapshotTrait; + use AudioObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AudioObjectSnapshot'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AudioObjectSnapshot'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AudioObjectSnapshot'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AudioObjectSnapshot'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AudioObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AudioObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific and exact (byte-for-byte) version of an [[AudioObject]]. Two byte-for-byte identical files, for the purposes of this type, considered identical. If they have different embedded metadata the files will differ. Different external facts about the files, e.g. creator or dateCreated that aren\'t represented in their actual content, do not affect this notion of identity.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific and exact (byte-for-byte) version of an [[AudioObject]]. Two byte-for-byte identical files, for the purposes of this type, considered identical. If they have different embedded metadata the files will differ. Different external facts about the files, e.g. creator or dateCreated that aren\'t represented in their actual content, do not affect this notion of identity.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'transcript' => ['Text'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'transcript' => ['Text'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Audiobook.php b/src/models/jsonld/Audiobook.php index 3648ec1bd..55e010dc7 100644 --- a/src/models/jsonld/Audiobook.php +++ b/src/models/jsonld/Audiobook.php @@ -23,405 +23,405 @@ */ class Audiobook extends MetaJsonLd implements AudiobookInterface, AudioObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface, BookInterface { - use AudiobookTrait; - use AudioObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; - use BookTrait; + use AudiobookTrait; + use AudioObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; + use BookTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Audiobook'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Audiobook'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Audiobook'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Audiobook'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AudioObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AudioObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An audiobook.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An audiobook.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abridged' => ['Boolean'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'bookEdition' => ['Text'], - 'bookFormat' => ['BookFormatType'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'illustrator' => ['Person'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'isbn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfPages' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'readBy' => ['Person'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'transcript' => ['Text'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abridged' => ['Boolean'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'bookEdition' => ['Text'], + 'bookFormat' => ['BookFormatType'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'illustrator' => ['Person'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'isbn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfPages' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'readBy' => ['Person'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'transcript' => ['Text'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abridged' => 'Indicates whether the book is an abridged edition.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'bookEdition' => 'The edition of the book.', - 'bookFormat' => 'The format of the book.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'illustrator' => 'The illustrator of the book.', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'isbn' => 'The ISBN of the book.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfPages' => 'The number of pages in the book.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'readBy' => 'A person who reads (performs) the audiobook.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abridged' => 'Indicates whether the book is an abridged edition.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'bookEdition' => 'The edition of the book.', + 'bookFormat' => 'The format of the book.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'illustrator' => 'The illustrator of the book.', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'isbn' => 'The ISBN of the book.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfPages' => 'The number of pages in the book.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'readBy' => 'A person who reads (performs) the audiobook.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AudiobookFormat.php b/src/models/jsonld/AudiobookFormat.php index 968c85a5c..8e226a498 100644 --- a/src/models/jsonld/AudiobookFormat.php +++ b/src/models/jsonld/AudiobookFormat.php @@ -25,126 +25,126 @@ */ class AudiobookFormat extends MetaJsonLd implements AudiobookFormatInterface, BookFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AudiobookFormatTrait; - use BookFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AudiobookFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AudiobookFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Book format: Audiobook. This is an enumerated value for use with the bookFormat property. There is also a type \'Audiobook\' in the bib extension which includes Audiobook specific properties.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AudiobookFormatTrait; + use BookFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AudiobookFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AudiobookFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Book format: Audiobook. This is an enumerated value for use with the bookFormat property. There is also a type \'Audiobook\' in the bib extension which includes Audiobook specific properties.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AuthoritativeLegalValue.php b/src/models/jsonld/AuthoritativeLegalValue.php index 922476104..e2f3ff58b 100644 --- a/src/models/jsonld/AuthoritativeLegalValue.php +++ b/src/models/jsonld/AuthoritativeLegalValue.php @@ -27,126 +27,126 @@ */ class AuthoritativeLegalValue extends MetaJsonLd implements AuthoritativeLegalValueInterface, LegalValueLevelInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AuthoritativeLegalValueTrait; - use LegalValueLevelTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AuthoritativeLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AuthoritativeLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the publisher gives some special status to the publication of the document. ("The Queens Printer" version of a UK Act of Parliament, or the PDF version of a Directive published by the EU Office of Publications.) Something "Authoritative" is considered to be also [[OfficialLegalValue]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AuthoritativeLegalValueTrait; + use LegalValueLevelTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AuthoritativeLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AuthoritativeLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the publisher gives some special status to the publication of the document. ("The Queens Printer" version of a UK Act of Parliament, or the PDF version of a Directive published by the EU Office of Publications.) Something "Authoritative" is considered to be also [[OfficialLegalValue]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AuthorizeAction.php b/src/models/jsonld/AuthorizeAction.php index 0141a8d47..dcec92979 100644 --- a/src/models/jsonld/AuthorizeAction.php +++ b/src/models/jsonld/AuthorizeAction.php @@ -23,150 +23,150 @@ */ class AuthorizeAction extends MetaJsonLd implements AuthorizeActionInterface, AllocateActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use AuthorizeActionTrait; - use AllocateActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AuthorizeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AuthorizeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of granting permission to an object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AuthorizeActionTrait; + use AllocateActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AuthorizeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AuthorizeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of granting permission to an object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/AutoBodyShop.php b/src/models/jsonld/AutoBodyShop.php index 99505a4bb..8a3f3b9bf 100644 --- a/src/models/jsonld/AutoBodyShop.php +++ b/src/models/jsonld/AutoBodyShop.php @@ -23,331 +23,331 @@ */ class AutoBodyShop extends MetaJsonLd implements AutoBodyShopInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AutoBodyShopTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AutoBodyShopTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutoBodyShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutoBodyShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutoBodyShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutoBodyShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Auto body shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Auto body shop.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AutoDealer.php b/src/models/jsonld/AutoDealer.php index f57e92147..58fe4c415 100644 --- a/src/models/jsonld/AutoDealer.php +++ b/src/models/jsonld/AutoDealer.php @@ -23,331 +23,331 @@ */ class AutoDealer extends MetaJsonLd implements AutoDealerInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AutoDealerTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AutoDealerTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutoDealer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutoDealer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutoDealer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutoDealer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An car dealership.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An car dealership.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AutoPartsStore.php b/src/models/jsonld/AutoPartsStore.php index 4ca445b3e..40804cd1a 100644 --- a/src/models/jsonld/AutoPartsStore.php +++ b/src/models/jsonld/AutoPartsStore.php @@ -23,332 +23,332 @@ */ class AutoPartsStore extends MetaJsonLd implements AutoPartsStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, AutomotiveBusinessInterface { - use AutoPartsStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use AutomotiveBusinessTrait; + use AutoPartsStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use AutomotiveBusinessTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutoPartsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutoPartsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutoPartsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutoPartsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An auto parts store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An auto parts store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AutoRental.php b/src/models/jsonld/AutoRental.php index 6a8fe65c4..415f75449 100644 --- a/src/models/jsonld/AutoRental.php +++ b/src/models/jsonld/AutoRental.php @@ -23,331 +23,331 @@ */ class AutoRental extends MetaJsonLd implements AutoRentalInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AutoRentalTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AutoRentalTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutoRental'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutoRental'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutoRental'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutoRental'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A car rental business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A car rental business.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AutoRepair.php b/src/models/jsonld/AutoRepair.php index 468506faa..74f20cdd2 100644 --- a/src/models/jsonld/AutoRepair.php +++ b/src/models/jsonld/AutoRepair.php @@ -23,331 +23,331 @@ */ class AutoRepair extends MetaJsonLd implements AutoRepairInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AutoRepairTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AutoRepairTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutoRepair'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutoRepair'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutoRepair'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutoRepair'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Car repair business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Car repair business.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AutoWash.php b/src/models/jsonld/AutoWash.php index 2600d345c..56c4a8518 100644 --- a/src/models/jsonld/AutoWash.php +++ b/src/models/jsonld/AutoWash.php @@ -23,331 +23,331 @@ */ class AutoWash extends MetaJsonLd implements AutoWashInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AutoWashTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AutoWashTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutoWash'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutoWash'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutoWash'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutoWash'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A car wash business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A car wash business.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AutomatedTeller.php b/src/models/jsonld/AutomatedTeller.php index 8c2211325..8ade9c536 100644 --- a/src/models/jsonld/AutomatedTeller.php +++ b/src/models/jsonld/AutomatedTeller.php @@ -23,333 +23,333 @@ */ class AutomatedTeller extends MetaJsonLd implements AutomatedTellerInterface, FinancialServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AutomatedTellerTrait; - use FinancialServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AutomatedTellerTrait; + use FinancialServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutomatedTeller'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutomatedTeller'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutomatedTeller'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutomatedTeller'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'ATM/cash machine.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'ATM/cash machine.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/AutomotiveBusiness.php b/src/models/jsonld/AutomotiveBusiness.php index 4ef04dfda..8e681d270 100644 --- a/src/models/jsonld/AutomotiveBusiness.php +++ b/src/models/jsonld/AutomotiveBusiness.php @@ -23,330 +23,330 @@ */ class AutomotiveBusiness extends MetaJsonLd implements AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'AutomotiveBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'AutomotiveBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/AutomotiveBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/AutomotiveBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Car repair, sales, or parts.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Car repair, sales, or parts.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Ayurvedic.php b/src/models/jsonld/Ayurvedic.php index bf830c73a..ade0f2e28 100644 --- a/src/models/jsonld/Ayurvedic.php +++ b/src/models/jsonld/Ayurvedic.php @@ -24,127 +24,127 @@ */ class Ayurvedic extends MetaJsonLd implements AyurvedicInterface, MedicineSystemInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use AyurvedicTrait; - use MedicineSystemTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Ayurvedic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Ayurvedic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A system of medicine that originated in India over thousands of years and that focuses on integrating and balancing the body, mind, and spirit.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use AyurvedicTrait; + use MedicineSystemTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Ayurvedic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Ayurvedic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A system of medicine that originated in India over thousands of years and that focuses on integrating and balancing the body, mind, and spirit.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BackOrder.php b/src/models/jsonld/BackOrder.php index 244ae6472..e2522ec9b 100644 --- a/src/models/jsonld/BackOrder.php +++ b/src/models/jsonld/BackOrder.php @@ -23,126 +23,126 @@ */ class BackOrder extends MetaJsonLd implements BackOrderInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BackOrderTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BackOrder'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BackOrder'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is available on back order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BackOrderTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BackOrder'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BackOrder'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is available on back order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BackgroundNewsArticle.php b/src/models/jsonld/BackgroundNewsArticle.php index 7bcfe86c4..943c8973d 100644 --- a/src/models/jsonld/BackgroundNewsArticle.php +++ b/src/models/jsonld/BackgroundNewsArticle.php @@ -30,374 +30,374 @@ */ class BackgroundNewsArticle extends MetaJsonLd implements BackgroundNewsArticleInterface, NewsArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use BackgroundNewsArticleTrait; - use NewsArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use BackgroundNewsArticleTrait; + use NewsArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BackgroundNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BackgroundNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BackgroundNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BackgroundNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[NewsArticle]] providing historical context, definition and detail on a specific topic (aka "explainer" or "backgrounder"). For example, an in-depth article or frequently-asked-questions ([FAQ](https://en.wikipedia.org/wiki/FAQ)) document on topics such as Climate Change or the European Union. Other kinds of background material from a non-news setting are often described using [[Book]] or [[Article]], in particular [[ScholarlyArticle]]. See also [[NewsArticle]] for related vocabulary from a learning/education perspective.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[NewsArticle]] providing historical context, definition and detail on a specific topic (aka "explainer" or "backgrounder"). For example, an in-depth article or frequently-asked-questions ([FAQ](https://en.wikipedia.org/wiki/FAQ)) document on topics such as Climate Change or the European Union. Other kinds of background material from a non-news setting are often described using [[Book]] or [[Article]], in particular [[ScholarlyArticle]]. See also [[NewsArticle]] for related vocabulary from a learning/education perspective.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateline' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'printColumn' => ['Text'], - 'printEdition' => ['Text'], - 'printPage' => ['Text'], - 'printSection' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateline' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'printColumn' => ['Text'], + 'printEdition' => ['Text'], + 'printPage' => ['Text'], + 'printSection' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', - 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', - 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', - 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', + 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', + 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', + 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Bacteria.php b/src/models/jsonld/Bacteria.php index 181993e7c..5d5e38dd6 100644 --- a/src/models/jsonld/Bacteria.php +++ b/src/models/jsonld/Bacteria.php @@ -23,127 +23,127 @@ */ class Bacteria extends MetaJsonLd implements BacteriaInterface, InfectiousAgentClassInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BacteriaTrait; - use InfectiousAgentClassTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Bacteria'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Bacteria'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Pathogenic bacteria that cause bacterial infection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BacteriaTrait; + use InfectiousAgentClassTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Bacteria'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Bacteria'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Pathogenic bacteria that cause bacterial infection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Bakery.php b/src/models/jsonld/Bakery.php index d4da6b6d8..6eb604e09 100644 --- a/src/models/jsonld/Bakery.php +++ b/src/models/jsonld/Bakery.php @@ -23,341 +23,341 @@ */ class Bakery extends MetaJsonLd implements BakeryInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BakeryTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BakeryTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Bakery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Bakery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Bakery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Bakery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bakery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bakery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Balance.php b/src/models/jsonld/Balance.php index 27acf65fc..c7d43043b 100644 --- a/src/models/jsonld/Balance.php +++ b/src/models/jsonld/Balance.php @@ -23,126 +23,126 @@ */ class Balance extends MetaJsonLd implements BalanceInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BalanceTrait; - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Balance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Balance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Physical activity that is engaged to help maintain posture and balance.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BalanceTrait; + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Balance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Balance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Physical activity that is engaged to help maintain posture and balance.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BankAccount.php b/src/models/jsonld/BankAccount.php index b1677af9e..b4b8c0145 100644 --- a/src/models/jsonld/BankAccount.php +++ b/src/models/jsonld/BankAccount.php @@ -24,184 +24,184 @@ */ class BankAccount extends MetaJsonLd implements BankAccountInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use BankAccountTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BankAccount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BankAccount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A product or service offered by a bank whereby one may deposit, withdraw or transfer money and in some cases be paid interest.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accountMinimumInflow' => ['MonetaryAmount'], - 'accountOverdraftLimit' => ['MonetaryAmount'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'bankAccountType' => ['Text', 'URL'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accountMinimumInflow' => 'A minimum amount that has to be paid in every month.', - 'accountOverdraftLimit' => 'An overdraft is an extension of credit from a lending institution when an account reaches zero. An overdraft allows the individual to continue withdrawing money even if the account has no funds in it. Basically the bank allows people to borrow a set amount of money.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'bankAccountType' => 'The type of a bank account.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BankAccountTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BankAccount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BankAccount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A product or service offered by a bank whereby one may deposit, withdraw or transfer money and in some cases be paid interest.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accountMinimumInflow' => ['MonetaryAmount'], + 'accountOverdraftLimit' => ['MonetaryAmount'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'bankAccountType' => ['Text', 'URL'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accountMinimumInflow' => 'A minimum amount that has to be paid in every month.', + 'accountOverdraftLimit' => 'An overdraft is an extension of credit from a lending institution when an account reaches zero. An overdraft allows the individual to continue withdrawing money even if the account has no funds in it. Basically the bank allows people to borrow a set amount of money.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'bankAccountType' => 'The type of a bank account.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BankOrCreditUnion.php b/src/models/jsonld/BankOrCreditUnion.php index 089c7b6fa..8e28132ad 100644 --- a/src/models/jsonld/BankOrCreditUnion.php +++ b/src/models/jsonld/BankOrCreditUnion.php @@ -23,333 +23,333 @@ */ class BankOrCreditUnion extends MetaJsonLd implements BankOrCreditUnionInterface, FinancialServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BankOrCreditUnionTrait; - use FinancialServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BankOrCreditUnionTrait; + use FinancialServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BankOrCreditUnion'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BankOrCreditUnion'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BankOrCreditUnion'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BankOrCreditUnion'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Bank or credit union.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Bank or credit union.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BarOrPub.php b/src/models/jsonld/BarOrPub.php index 0d9f16072..c7aa6e924 100644 --- a/src/models/jsonld/BarOrPub.php +++ b/src/models/jsonld/BarOrPub.php @@ -23,341 +23,341 @@ */ class BarOrPub extends MetaJsonLd implements BarOrPubInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BarOrPubTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BarOrPubTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BarOrPub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BarOrPub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BarOrPub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BarOrPub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bar or pub.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bar or pub.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Barcode.php b/src/models/jsonld/Barcode.php index 854cfa434..368101678 100644 --- a/src/models/jsonld/Barcode.php +++ b/src/models/jsonld/Barcode.php @@ -23,394 +23,394 @@ */ class Barcode extends MetaJsonLd implements BarcodeInterface, ImageObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use BarcodeTrait; - use ImageObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use BarcodeTrait; + use ImageObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Barcode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Barcode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Barcode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Barcode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ImageObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ImageObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An image of a visual machine-readable code such as a barcode or QR code.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An image of a visual machine-readable code such as a barcode or QR code.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'exifData' => ['Text', 'PropertyValue'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'representativeOfPage' => ['Boolean'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnail' => ['ImageObject'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'exifData' => ['Text', 'PropertyValue'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'representativeOfPage' => ['Boolean'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnail' => ['ImageObject'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'exifData' => 'exif data for this object.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'representativeOfPage' => 'Indicates whether this image is representative of the content of the page.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnail' => 'Thumbnail image for an image or video.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'exifData' => 'exif data for this object.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'representativeOfPage' => 'Indicates whether this image is representative of the content of the page.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnail' => 'Thumbnail image for an image or video.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BasicIncome.php b/src/models/jsonld/BasicIncome.php index 336d6d5c1..c71ab1a26 100644 --- a/src/models/jsonld/BasicIncome.php +++ b/src/models/jsonld/BasicIncome.php @@ -23,126 +23,126 @@ */ class BasicIncome extends MetaJsonLd implements BasicIncomeInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BasicIncomeTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BasicIncome'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BasicIncome'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'BasicIncome: this is a benefit for basic income.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BasicIncomeTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BasicIncome'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BasicIncome'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'BasicIncome: this is a benefit for basic income.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Beach.php b/src/models/jsonld/Beach.php index c478dbf1c..bf7b0f901 100644 --- a/src/models/jsonld/Beach.php +++ b/src/models/jsonld/Beach.php @@ -23,215 +23,215 @@ */ class Beach extends MetaJsonLd implements BeachInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use BeachTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Beach'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Beach'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Beach.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BeachTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Beach'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Beach'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Beach.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BeautySalon.php b/src/models/jsonld/BeautySalon.php index 6a2581c6e..1e651c297 100644 --- a/src/models/jsonld/BeautySalon.php +++ b/src/models/jsonld/BeautySalon.php @@ -23,331 +23,331 @@ */ class BeautySalon extends MetaJsonLd implements BeautySalonInterface, HealthAndBeautyBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BeautySalonTrait; - use HealthAndBeautyBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BeautySalonTrait; + use HealthAndBeautyBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BeautySalon'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BeautySalon'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BeautySalon'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BeautySalon'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Beauty salon.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Beauty salon.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BedAndBreakfast.php b/src/models/jsonld/BedAndBreakfast.php index 15c66a812..b16270709 100644 --- a/src/models/jsonld/BedAndBreakfast.php +++ b/src/models/jsonld/BedAndBreakfast.php @@ -25,345 +25,345 @@ */ class BedAndBreakfast extends MetaJsonLd implements BedAndBreakfastInterface, LodgingBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BedAndBreakfastTrait; - use LodgingBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BedAndBreakfastTrait; + use LodgingBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BedAndBreakfast'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BedAndBreakfast'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BedAndBreakfast'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BedAndBreakfast'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Bed and breakfast.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Bed and breakfast.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BedDetails.php b/src/models/jsonld/BedDetails.php index 717337a67..24d8f93e1 100644 --- a/src/models/jsonld/BedDetails.php +++ b/src/models/jsonld/BedDetails.php @@ -26,126 +26,126 @@ */ class BedDetails extends MetaJsonLd implements BedDetailsInterface, IntangibleInterface, ThingInterface { - use BedDetailsTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BedDetails'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BedDetails'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An entity holding detailed information about the available bed types, e.g. the quantity of twin beds for a hotel room. For the single case of just one bed of a certain type, you can use bed directly with a text. See also [[BedType]] (under development).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numberOfBeds' => ['Number'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typeOfBed' => ['BedType', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'numberOfBeds' => 'The quantity of the given bed type available in the HotelRoom, Suite, House, or Apartment.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typeOfBed' => 'The type of bed to which the BedDetail refers, i.e. the type of bed available in the quantity indicated by quantity.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BedDetailsTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BedDetails'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BedDetails'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An entity holding detailed information about the available bed types, e.g. the quantity of twin beds for a hotel room. For the single case of just one bed of a certain type, you can use bed directly with a text. See also [[BedType]] (under development).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numberOfBeds' => ['Number'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typeOfBed' => ['BedType', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'numberOfBeds' => 'The quantity of the given bed type available in the HotelRoom, Suite, House, or Apartment.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typeOfBed' => 'The type of bed to which the BedDetail refers, i.e. the type of bed available in the quantity indicated by quantity.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BedType.php b/src/models/jsonld/BedType.php index ed1fcc378..c5a8d4091 100644 --- a/src/models/jsonld/BedType.php +++ b/src/models/jsonld/BedType.php @@ -24,142 +24,142 @@ */ class BedType extends MetaJsonLd implements BedTypeInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BedTypeTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BedType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BedType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of bed. This is used for indicating the bed or beds available in an accommodation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BedTypeTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BedType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BedType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of bed. This is used for indicating the bed or beds available in an accommodation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BefriendAction.php b/src/models/jsonld/BefriendAction.php index 0bc09d0b7..0111a1b41 100644 --- a/src/models/jsonld/BefriendAction.php +++ b/src/models/jsonld/BefriendAction.php @@ -26,147 +26,147 @@ */ class BefriendAction extends MetaJsonLd implements BefriendActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use BefriendActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BefriendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BefriendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of forming a personal connection with someone (object) mutually/bidirectionally/symmetrically.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, BefriendAction implies that the connection is reciprocal.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BefriendActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BefriendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BefriendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of forming a personal connection with someone (object) mutually/bidirectionally/symmetrically.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, BefriendAction implies that the connection is reciprocal.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BenefitsHealthAspect.php b/src/models/jsonld/BenefitsHealthAspect.php index d9f5f30d9..5bda2c012 100644 --- a/src/models/jsonld/BenefitsHealthAspect.php +++ b/src/models/jsonld/BenefitsHealthAspect.php @@ -23,126 +23,126 @@ */ class BenefitsHealthAspect extends MetaJsonLd implements BenefitsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BenefitsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BenefitsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BenefitsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about the benefits and advantages of usage or utilization of topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BenefitsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BenefitsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BenefitsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about the benefits and advantages of usage or utilization of topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BikeStore.php b/src/models/jsonld/BikeStore.php index cab3a2dd0..2cee99a9a 100644 --- a/src/models/jsonld/BikeStore.php +++ b/src/models/jsonld/BikeStore.php @@ -23,331 +23,331 @@ */ class BikeStore extends MetaJsonLd implements BikeStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BikeStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BikeStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BikeStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BikeStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BikeStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BikeStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bike store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bike store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BioChemEntity.php b/src/models/jsonld/BioChemEntity.php index 3352b8b79..749691730 100644 --- a/src/models/jsonld/BioChemEntity.php +++ b/src/models/jsonld/BioChemEntity.php @@ -24,147 +24,147 @@ */ class BioChemEntity extends MetaJsonLd implements BioChemEntityInterface, ThingInterface { - use BioChemEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BioChemEntity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BioChemEntity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any biological, chemical, or biochemical thing. For example: a protein; a gene; a chemical; a synthetic chemical.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], - 'bioChemInteraction' => ['BioChemEntity'], - 'bioChemSimilarity' => ['BioChemEntity'], - 'biologicalRole' => ['DefinedTerm'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'hasBioChemEntityPart' => ['BioChemEntity'], - 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isEncodedByBioChemEntity' => ['Gene'], - 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], - 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'isPartOfBioChemEntity' => ['BioChemEntity'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', - 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', - 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', - 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', - 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', - 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', - 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', - 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', - 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BioChemEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BioChemEntity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BioChemEntity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any biological, chemical, or biochemical thing. For example: a protein; a gene; a chemical; a synthetic chemical.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], + 'bioChemInteraction' => ['BioChemEntity'], + 'bioChemSimilarity' => ['BioChemEntity'], + 'biologicalRole' => ['DefinedTerm'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'hasBioChemEntityPart' => ['BioChemEntity'], + 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isEncodedByBioChemEntity' => ['Gene'], + 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], + 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'isPartOfBioChemEntity' => ['BioChemEntity'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', + 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', + 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', + 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', + 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', + 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', + 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', + 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', + 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Blog.php b/src/models/jsonld/Blog.php index c4e91e1a6..8c61cd9fa 100644 --- a/src/models/jsonld/Blog.php +++ b/src/models/jsonld/Blog.php @@ -25,352 +25,352 @@ */ class Blog extends MetaJsonLd implements BlogInterface, CreativeWorkInterface, ThingInterface { - use BlogTrait; - use CreativeWorkTrait; - use ThingTrait; + use BlogTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Blog'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Blog'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Blog'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Blog'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [blog](https://en.wikipedia.org/wiki/Blog), sometimes known as a "weblog". Note that the individual posts ([[BlogPosting]]s) in a [[Blog]] are often colloquially referred to by the same term.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [blog](https://en.wikipedia.org/wiki/Blog), sometimes known as a "weblog". Note that the individual posts ([[BlogPosting]]s) in a [[Blog]] are often colloquially referred to by the same term.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'blogPost' => ['BlogPosting'], - 'blogPosts' => ['BlogPosting'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'blogPost' => ['BlogPosting'], + 'blogPosts' => ['BlogPosting'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'blogPost' => 'A posting that is part of this blog.', - 'blogPosts' => 'Indicates a post that is part of a [[Blog]]. Note that historically, what we term a "Blog" was once known as a "weblog", and that what we term a "BlogPosting" is now often colloquially referred to as a "blog".', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'blogPost' => 'A posting that is part of this blog.', + 'blogPosts' => 'Indicates a post that is part of a [[Blog]]. Note that historically, what we term a "Blog" was once known as a "weblog", and that what we term a "BlogPosting" is now often colloquially referred to as a "blog".', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BlogPosting.php b/src/models/jsonld/BlogPosting.php index 0cb380f7e..c230237f8 100644 --- a/src/models/jsonld/BlogPosting.php +++ b/src/models/jsonld/BlogPosting.php @@ -23,366 +23,366 @@ */ class BlogPosting extends MetaJsonLd implements BlogPostingInterface, SocialMediaPostingInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use BlogPostingTrait; - use SocialMediaPostingTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use BlogPostingTrait; + use SocialMediaPostingTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BlogPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BlogPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BlogPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BlogPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SocialMediaPosting'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SocialMediaPosting'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A blog post.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A blog post.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sharedContent' => ['CreativeWork'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sharedContent' => ['CreativeWork'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BloodTest.php b/src/models/jsonld/BloodTest.php index e131fdc82..18e3a86ea 100644 --- a/src/models/jsonld/BloodTest.php +++ b/src/models/jsonld/BloodTest.php @@ -23,149 +23,149 @@ */ class BloodTest extends MetaJsonLd implements BloodTestInterface, MedicalTestInterface, MedicalEntityInterface, ThingInterface { - use BloodTestTrait; - use MedicalTestTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BloodTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BloodTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical test performed on a sample of a patient\'s blood.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'affectedBy' => ['Drug'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'normalRange' => ['Text', 'MedicalEnumeration'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'signDetected' => ['MedicalSign'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'usedToDiagnose' => ['MedicalCondition'], - 'usesDevice' => ['MedicalDevice'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'affectedBy' => 'Drugs that affect the test\'s results.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'signDetected' => 'A sign detected by the test.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'usedToDiagnose' => 'A condition the test is used to diagnose.', - 'usesDevice' => 'Device used to perform the test.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BloodTestTrait; + use MedicalTestTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BloodTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BloodTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical test performed on a sample of a patient\'s blood.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'affectedBy' => ['Drug'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'normalRange' => ['Text', 'MedicalEnumeration'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'signDetected' => ['MedicalSign'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'usedToDiagnose' => ['MedicalCondition'], + 'usesDevice' => ['MedicalDevice'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'affectedBy' => 'Drugs that affect the test\'s results.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'signDetected' => 'A sign detected by the test.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'usedToDiagnose' => 'A condition the test is used to diagnose.', + 'usesDevice' => 'Device used to perform the test.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BoardingPolicyType.php b/src/models/jsonld/BoardingPolicyType.php index 9161eac09..7a80367ec 100644 --- a/src/models/jsonld/BoardingPolicyType.php +++ b/src/models/jsonld/BoardingPolicyType.php @@ -23,125 +23,125 @@ */ class BoardingPolicyType extends MetaJsonLd implements BoardingPolicyTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BoardingPolicyTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BoardingPolicyType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BoardingPolicyType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of boarding policy used by an airline.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BoardingPolicyTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BoardingPolicyType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BoardingPolicyType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of boarding policy used by an airline.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BoatReservation.php b/src/models/jsonld/BoatReservation.php index c1ec53d55..6effc411c 100644 --- a/src/models/jsonld/BoatReservation.php +++ b/src/models/jsonld/BoatReservation.php @@ -26,149 +26,149 @@ */ class BoatReservation extends MetaJsonLd implements BoatReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use BoatReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BoatReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BoatReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A reservation for boat travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]]."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BoatReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BoatReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BoatReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A reservation for boat travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]]."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BoatTerminal.php b/src/models/jsonld/BoatTerminal.php index 469f3d1db..ef025b316 100644 --- a/src/models/jsonld/BoatTerminal.php +++ b/src/models/jsonld/BoatTerminal.php @@ -23,215 +23,215 @@ */ class BoatTerminal extends MetaJsonLd implements BoatTerminalInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use BoatTerminalTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BoatTerminal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BoatTerminal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A terminal for boats, ships, and other water vessels.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BoatTerminalTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BoatTerminal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BoatTerminal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A terminal for boats, ships, and other water vessels.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BoatTrip.php b/src/models/jsonld/BoatTrip.php index f3b3c754b..d9b2b694f 100644 --- a/src/models/jsonld/BoatTrip.php +++ b/src/models/jsonld/BoatTrip.php @@ -23,141 +23,141 @@ */ class BoatTrip extends MetaJsonLd implements BoatTripInterface, TripInterface, IntangibleInterface, ThingInterface { - use BoatTripTrait; - use TripTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BoatTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BoatTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trip on a commercial ferry line.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'arrivalBoatTerminal' => ['BoatTerminal'], - 'arrivalTime' => ['DateTime', 'Time'], - 'departureBoatTerminal' => ['BoatTerminal'], - 'departureTime' => ['Time', 'DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itinerary' => ['ItemList', 'Place'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfTrip' => ['Trip'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'sameAs' => ['URL'], - 'subTrip' => ['Trip'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'arrivalBoatTerminal' => 'The terminal or port from which the boat arrives.', - 'arrivalTime' => 'The expected arrival time.', - 'departureBoatTerminal' => 'The terminal or port from which the boat departs.', - 'departureTime' => 'The expected departure time.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BoatTripTrait; + use TripTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BoatTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BoatTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trip on a commercial ferry line.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'arrivalBoatTerminal' => ['BoatTerminal'], + 'arrivalTime' => ['DateTime', 'Time'], + 'departureBoatTerminal' => ['BoatTerminal'], + 'departureTime' => ['Time', 'DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itinerary' => ['ItemList', 'Place'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfTrip' => ['Trip'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'sameAs' => ['URL'], + 'subTrip' => ['Trip'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'arrivalBoatTerminal' => 'The terminal or port from which the boat arrives.', + 'arrivalTime' => 'The expected arrival time.', + 'departureBoatTerminal' => 'The terminal or port from which the boat departs.', + 'departureTime' => 'The expected departure time.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementArm.php b/src/models/jsonld/BodyMeasurementArm.php index 928114050..9d94312e0 100644 --- a/src/models/jsonld/BodyMeasurementArm.php +++ b/src/models/jsonld/BodyMeasurementArm.php @@ -24,127 +24,127 @@ */ class BodyMeasurementArm extends MetaJsonLd implements BodyMeasurementArmInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementArmTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementArm'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementArm'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Arm length (measured between arms/shoulder line intersection and the prominent wrist bone). Used, for example, to fit shirts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementArmTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementArm'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementArm'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Arm length (measured between arms/shoulder line intersection and the prominent wrist bone). Used, for example, to fit shirts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementBust.php b/src/models/jsonld/BodyMeasurementBust.php index 9a5f22141..9c50169de 100644 --- a/src/models/jsonld/BodyMeasurementBust.php +++ b/src/models/jsonld/BodyMeasurementBust.php @@ -23,127 +23,127 @@ */ class BodyMeasurementBust extends MetaJsonLd implements BodyMeasurementBustInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementBustTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementBust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementBust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Maximum girth of bust. Used, for example, to fit women\'s suits.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementBustTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementBust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementBust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Maximum girth of bust. Used, for example, to fit women\'s suits.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementChest.php b/src/models/jsonld/BodyMeasurementChest.php index c52503edc..daf9c8c42 100644 --- a/src/models/jsonld/BodyMeasurementChest.php +++ b/src/models/jsonld/BodyMeasurementChest.php @@ -23,127 +23,127 @@ */ class BodyMeasurementChest extends MetaJsonLd implements BodyMeasurementChestInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementChestTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementChest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementChest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Maximum girth of chest. Used, for example, to fit men\'s suits.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementChestTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementChest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementChest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Maximum girth of chest. Used, for example, to fit men\'s suits.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementFoot.php b/src/models/jsonld/BodyMeasurementFoot.php index 2eb41527c..1349e1ed7 100644 --- a/src/models/jsonld/BodyMeasurementFoot.php +++ b/src/models/jsonld/BodyMeasurementFoot.php @@ -24,127 +24,127 @@ */ class BodyMeasurementFoot extends MetaJsonLd implements BodyMeasurementFootInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementFootTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementFoot'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementFoot'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Foot length (measured between end of the most prominent toe and the most prominent part of the heel). Used, for example, to measure socks.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementFootTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementFoot'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementFoot'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Foot length (measured between end of the most prominent toe and the most prominent part of the heel). Used, for example, to measure socks.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementHand.php b/src/models/jsonld/BodyMeasurementHand.php index af6b2dab6..78290c756 100644 --- a/src/models/jsonld/BodyMeasurementHand.php +++ b/src/models/jsonld/BodyMeasurementHand.php @@ -24,127 +24,127 @@ */ class BodyMeasurementHand extends MetaJsonLd implements BodyMeasurementHandInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementHandTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementHand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Maximum hand girth (measured over the knuckles of the open right hand excluding thumb, fingers together). Used, for example, to fit gloves.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementHandTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementHand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Maximum hand girth (measured over the knuckles of the open right hand excluding thumb, fingers together). Used, for example, to fit gloves.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementHead.php b/src/models/jsonld/BodyMeasurementHead.php index 8d91a6f80..0b8fbe68b 100644 --- a/src/models/jsonld/BodyMeasurementHead.php +++ b/src/models/jsonld/BodyMeasurementHead.php @@ -23,127 +23,127 @@ */ class BodyMeasurementHead extends MetaJsonLd implements BodyMeasurementHeadInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementHeadTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementHead'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHead'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Maximum girth of head above the ears. Used, for example, to fit hats.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementHeadTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementHead'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHead'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Maximum girth of head above the ears. Used, for example, to fit hats.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementHeight.php b/src/models/jsonld/BodyMeasurementHeight.php index ed58e0f53..0c24b4ca5 100644 --- a/src/models/jsonld/BodyMeasurementHeight.php +++ b/src/models/jsonld/BodyMeasurementHeight.php @@ -24,127 +24,127 @@ */ class BodyMeasurementHeight extends MetaJsonLd implements BodyMeasurementHeightInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementHeightTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementHeight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHeight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Body height (measured between crown of head and soles of feet). Used, for example, to fit jackets.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementHeightTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementHeight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHeight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Body height (measured between crown of head and soles of feet). Used, for example, to fit jackets.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementHips.php b/src/models/jsonld/BodyMeasurementHips.php index 53a4c33d5..af16a7185 100644 --- a/src/models/jsonld/BodyMeasurementHips.php +++ b/src/models/jsonld/BodyMeasurementHips.php @@ -24,127 +24,127 @@ */ class BodyMeasurementHips extends MetaJsonLd implements BodyMeasurementHipsInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementHipsTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementHips'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHips'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Girth of hips (measured around the buttocks). Used, for example, to fit skirts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementHipsTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementHips'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementHips'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Girth of hips (measured around the buttocks). Used, for example, to fit skirts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementInsideLeg.php b/src/models/jsonld/BodyMeasurementInsideLeg.php index 5dcef3452..a0aa97cd4 100644 --- a/src/models/jsonld/BodyMeasurementInsideLeg.php +++ b/src/models/jsonld/BodyMeasurementInsideLeg.php @@ -24,127 +24,127 @@ */ class BodyMeasurementInsideLeg extends MetaJsonLd implements BodyMeasurementInsideLegInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementInsideLegTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementInsideLeg'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementInsideLeg'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Inside leg (measured between crotch and soles of feet). Used, for example, to fit pants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementInsideLegTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementInsideLeg'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementInsideLeg'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Inside leg (measured between crotch and soles of feet). Used, for example, to fit pants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementNeck.php b/src/models/jsonld/BodyMeasurementNeck.php index f3f0908f6..a8f93c4e7 100644 --- a/src/models/jsonld/BodyMeasurementNeck.php +++ b/src/models/jsonld/BodyMeasurementNeck.php @@ -23,127 +23,127 @@ */ class BodyMeasurementNeck extends MetaJsonLd implements BodyMeasurementNeckInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementNeckTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementNeck'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementNeck'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Girth of neck. Used, for example, to fit shirts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementNeckTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementNeck'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementNeck'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Girth of neck. Used, for example, to fit shirts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementTypeEnumeration.php b/src/models/jsonld/BodyMeasurementTypeEnumeration.php index d5dab38d2..b57096701 100644 --- a/src/models/jsonld/BodyMeasurementTypeEnumeration.php +++ b/src/models/jsonld/BodyMeasurementTypeEnumeration.php @@ -24,126 +24,126 @@ */ class BodyMeasurementTypeEnumeration extends MetaJsonLd implements BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates types (or dimensions) of a person\'s body measurements, for example for fitting of clothes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates types (or dimensions) of a person\'s body measurements, for example for fitting of clothes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementUnderbust.php b/src/models/jsonld/BodyMeasurementUnderbust.php index 1f11285bb..d93bdd548 100644 --- a/src/models/jsonld/BodyMeasurementUnderbust.php +++ b/src/models/jsonld/BodyMeasurementUnderbust.php @@ -24,127 +24,127 @@ */ class BodyMeasurementUnderbust extends MetaJsonLd implements BodyMeasurementUnderbustInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementUnderbustTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementUnderbust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementUnderbust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Girth of body just below the bust. Used, for example, to fit women\'s swimwear.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementUnderbustTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementUnderbust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementUnderbust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Girth of body just below the bust. Used, for example, to fit women\'s swimwear.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementWaist.php b/src/models/jsonld/BodyMeasurementWaist.php index 607cbfcc5..25f9084d4 100644 --- a/src/models/jsonld/BodyMeasurementWaist.php +++ b/src/models/jsonld/BodyMeasurementWaist.php @@ -24,127 +24,127 @@ */ class BodyMeasurementWaist extends MetaJsonLd implements BodyMeasurementWaistInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementWaistTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementWaist'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementWaist'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Girth of natural waistline (between hip bones and lower ribs). Used, for example, to fit pants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementWaistTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementWaist'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementWaist'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Girth of natural waistline (between hip bones and lower ribs). Used, for example, to fit pants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyMeasurementWeight.php b/src/models/jsonld/BodyMeasurementWeight.php index 87abeac4c..bde39e633 100644 --- a/src/models/jsonld/BodyMeasurementWeight.php +++ b/src/models/jsonld/BodyMeasurementWeight.php @@ -23,127 +23,127 @@ */ class BodyMeasurementWeight extends MetaJsonLd implements BodyMeasurementWeightInterface, BodyMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BodyMeasurementWeightTrait; - use BodyMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyMeasurementWeight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyMeasurementWeight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Body weight. Used, for example, to measure pantyhose.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyMeasurementWeightTrait; + use BodyMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyMeasurementWeight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyMeasurementWeight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Body weight. Used, for example, to measure pantyhose.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BodyOfWater.php b/src/models/jsonld/BodyOfWater.php index 6d6843621..9ca425621 100644 --- a/src/models/jsonld/BodyOfWater.php +++ b/src/models/jsonld/BodyOfWater.php @@ -23,213 +23,213 @@ */ class BodyOfWater extends MetaJsonLd implements BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A body of water, such as a sea, ocean, or lake.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A body of water, such as a sea, ocean, or lake.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Bone.php b/src/models/jsonld/Bone.php index 64ad78763..4e7bd3014 100644 --- a/src/models/jsonld/Bone.php +++ b/src/models/jsonld/Bone.php @@ -24,155 +24,155 @@ */ class Bone extends MetaJsonLd implements BoneInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use BoneTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Bone'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Bone'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Rigid connective tissue that comprises up the skeletal structure of the human body.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BoneTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Bone'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Bone'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Rigid connective tissue that comprises up the skeletal structure of the human body.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Book.php b/src/models/jsonld/Book.php index d58941ad3..660f290c1 100644 --- a/src/models/jsonld/Book.php +++ b/src/models/jsonld/Book.php @@ -23,358 +23,358 @@ */ class Book extends MetaJsonLd implements BookInterface, CreativeWorkInterface, ThingInterface { - use BookTrait; - use CreativeWorkTrait; - use ThingTrait; + use BookTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Book'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Book'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Book'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Book'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A book.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A book.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abridged' => ['Boolean'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bookEdition' => ['Text'], - 'bookFormat' => ['BookFormatType'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'illustrator' => ['Person'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'isbn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfPages' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abridged' => ['Boolean'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bookEdition' => ['Text'], + 'bookFormat' => ['BookFormatType'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'illustrator' => ['Person'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'isbn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfPages' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abridged' => 'Indicates whether the book is an abridged edition.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bookEdition' => 'The edition of the book.', - 'bookFormat' => 'The format of the book.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'illustrator' => 'The illustrator of the book.', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'isbn' => 'The ISBN of the book.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfPages' => 'The number of pages in the book.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abridged' => 'Indicates whether the book is an abridged edition.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bookEdition' => 'The edition of the book.', + 'bookFormat' => 'The format of the book.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'illustrator' => 'The illustrator of the book.', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'isbn' => 'The ISBN of the book.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfPages' => 'The number of pages in the book.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BookFormatType.php b/src/models/jsonld/BookFormatType.php index dd5482631..b6fc6d26c 100644 --- a/src/models/jsonld/BookFormatType.php +++ b/src/models/jsonld/BookFormatType.php @@ -23,125 +23,125 @@ */ class BookFormatType extends MetaJsonLd implements BookFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BookFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BookFormatType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BookFormatType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The publication format of the book.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BookFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BookFormatType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BookFormatType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The publication format of the book.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BookSeries.php b/src/models/jsonld/BookSeries.php index 2f3f383e9..5535590d9 100644 --- a/src/models/jsonld/BookSeries.php +++ b/src/models/jsonld/BookSeries.php @@ -24,355 +24,355 @@ */ class BookSeries extends MetaJsonLd implements BookSeriesInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use BookSeriesTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use BookSeriesTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BookSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BookSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BookSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BookSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A series of books. Included books can be indicated with the hasPart property.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A series of books. Included books can be indicated with the hasPart property.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BookStore.php b/src/models/jsonld/BookStore.php index fe0eb1ae4..36a3ce679 100644 --- a/src/models/jsonld/BookStore.php +++ b/src/models/jsonld/BookStore.php @@ -23,331 +23,331 @@ */ class BookStore extends MetaJsonLd implements BookStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BookStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BookStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BookStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BookStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BookStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BookStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bookstore.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bookstore.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BookmarkAction.php b/src/models/jsonld/BookmarkAction.php index 984e9bcb4..8f12a1479 100644 --- a/src/models/jsonld/BookmarkAction.php +++ b/src/models/jsonld/BookmarkAction.php @@ -23,147 +23,147 @@ */ class BookmarkAction extends MetaJsonLd implements BookmarkActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use BookmarkActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BookmarkAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BookmarkAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent bookmarks/flags/labels/tags/marks an object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BookmarkActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BookmarkAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BookmarkAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent bookmarks/flags/labels/tags/marks an object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Boolean.php b/src/models/jsonld/Boolean.php index b0d40c3a8..62e3adf54 100644 --- a/src/models/jsonld/Boolean.php +++ b/src/models/jsonld/Boolean.php @@ -23,98 +23,98 @@ */ class Boolean extends MetaJsonLd implements BooleanInterface { - use BooleanTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Boolean'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Boolean'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Boolean: True or False.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BooleanTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Boolean'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Boolean'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Boolean: True or False.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BorrowAction.php b/src/models/jsonld/BorrowAction.php index 6bdc5aa32..c63886d4a 100644 --- a/src/models/jsonld/BorrowAction.php +++ b/src/models/jsonld/BorrowAction.php @@ -25,153 +25,153 @@ */ class BorrowAction extends MetaJsonLd implements BorrowActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use BorrowActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BorrowAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BorrowAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of obtaining an object under an agreement to return it at a later date. Reciprocal of LendAction.\n\nRelated actions:\n\n* [[LendAction]]: Reciprocal of BorrowAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'lender' => ['Organization', 'Person'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'lender' => 'A sub property of participant. The person that lends the object being borrowed.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BorrowActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BorrowAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BorrowAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of obtaining an object under an agreement to return it at a later date. Reciprocal of LendAction.\n\nRelated actions:\n\n* [[LendAction]]: Reciprocal of BorrowAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'lender' => ['Organization', 'Person'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'lender' => 'A sub property of participant. The person that lends the object being borrowed.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BowlingAlley.php b/src/models/jsonld/BowlingAlley.php index e84fcb296..19eae2828 100644 --- a/src/models/jsonld/BowlingAlley.php +++ b/src/models/jsonld/BowlingAlley.php @@ -23,331 +23,331 @@ */ class BowlingAlley extends MetaJsonLd implements BowlingAlleyInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BowlingAlleyTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BowlingAlleyTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BowlingAlley'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BowlingAlley'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BowlingAlley'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BowlingAlley'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bowling alley.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bowling alley.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BrainStructure.php b/src/models/jsonld/BrainStructure.php index 3426370a7..51cb63e09 100644 --- a/src/models/jsonld/BrainStructure.php +++ b/src/models/jsonld/BrainStructure.php @@ -25,155 +25,155 @@ */ class BrainStructure extends MetaJsonLd implements BrainStructureInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use BrainStructureTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BrainStructure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BrainStructure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any anatomical structure which pertains to the soft nervous tissue functioning as the coordinating center of sensation and intellectual and nervous activity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BrainStructureTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BrainStructure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BrainStructure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any anatomical structure which pertains to the soft nervous tissue functioning as the coordinating center of sensation and intellectual and nervous activity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Brand.php b/src/models/jsonld/Brand.php index e7668ed1b..1678ca2c3 100644 --- a/src/models/jsonld/Brand.php +++ b/src/models/jsonld/Brand.php @@ -24,130 +24,130 @@ */ class Brand extends MetaJsonLd implements BrandInterface, IntangibleInterface, ThingInterface { - use BrandTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Brand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Brand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A brand is a name used by an organization or business person for labeling a product, product group, or similar.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'review' => 'A review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BrandTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Brand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Brand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A brand is a name used by an organization or business person for labeling a product, product group, or similar.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'review' => 'A review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BreadcrumbList.php b/src/models/jsonld/BreadcrumbList.php index e95ea65fe..e4f389e53 100644 --- a/src/models/jsonld/BreadcrumbList.php +++ b/src/models/jsonld/BreadcrumbList.php @@ -32,129 +32,129 @@ */ class BreadcrumbList extends MetaJsonLd implements BreadcrumbListInterface, ItemListInterface, IntangibleInterface, ThingInterface { - use BreadcrumbListTrait; - use ItemListTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BreadcrumbList'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BreadcrumbList'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemList'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A BreadcrumbList is an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.\\n\\nThe [[position]] property is used to reconstruct the order of the items in a BreadcrumbList. The convention is that a breadcrumb list has an [[itemListOrder]] of [[ItemListOrderAscending]] (lower values listed first), and that the first items in this list correspond to the \"top\" or beginning of the breadcrumb trail, e.g. with a site or section homepage. The specific values of 'position' are not assigned meaning for a BreadcrumbList, but they should be integers, e.g. beginning with '1' for the first item in the list.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itemListElement' => ['ListItem', 'Text', 'Thing'], - 'itemListOrder' => ['ItemListOrderType', 'Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numberOfItems' => ['Integer'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', - 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', - '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.', - 'name' => 'The name of the item.', - 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BreadcrumbListTrait; + use ItemListTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BreadcrumbList'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BreadcrumbList'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemList'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A BreadcrumbList is an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.\\n\\nThe [[position]] property is used to reconstruct the order of the items in a BreadcrumbList. The convention is that a breadcrumb list has an [[itemListOrder]] of [[ItemListOrderAscending]] (lower values listed first), and that the first items in this list correspond to the \"top\" or beginning of the breadcrumb trail, e.g. with a site or section homepage. The specific values of 'position' are not assigned meaning for a BreadcrumbList, but they should be integers, e.g. beginning with '1' for the first item in the list.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itemListElement' => ['ListItem', 'Text', 'Thing'], + 'itemListOrder' => ['ItemListOrderType', 'Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numberOfItems' => ['Integer'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', + 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', + '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.', + 'name' => 'The name of the item.', + 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Brewery.php b/src/models/jsonld/Brewery.php index b6493dc9f..d1f3fb70a 100644 --- a/src/models/jsonld/Brewery.php +++ b/src/models/jsonld/Brewery.php @@ -23,341 +23,341 @@ */ class Brewery extends MetaJsonLd implements BreweryInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use BreweryTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use BreweryTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Brewery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Brewery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Brewery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Brewery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Brewery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Brewery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Bridge.php b/src/models/jsonld/Bridge.php index 1e0d10530..bbcd9b1cb 100644 --- a/src/models/jsonld/Bridge.php +++ b/src/models/jsonld/Bridge.php @@ -23,215 +23,215 @@ */ class Bridge extends MetaJsonLd implements BridgeInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use BridgeTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Bridge'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Bridge'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bridge.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BridgeTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Bridge'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Bridge'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bridge.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BroadcastChannel.php b/src/models/jsonld/BroadcastChannel.php index e6b7f03bb..9a1d961dd 100644 --- a/src/models/jsonld/BroadcastChannel.php +++ b/src/models/jsonld/BroadcastChannel.php @@ -24,134 +24,134 @@ */ class BroadcastChannel extends MetaJsonLd implements BroadcastChannelInterface, IntangibleInterface, ThingInterface { - use BroadcastChannelTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BroadcastChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BroadcastChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A unique instance of a BroadcastService on a CableOrSatelliteService lineup.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'broadcastChannelId' => ['Text'], - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], - 'broadcastServiceTier' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'genre' => ['Text', 'URL'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inBroadcastLineup' => ['CableOrSatelliteService'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'providesBroadcastService' => ['BroadcastService'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', - '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".', - 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', - 'description' => 'A description of the item.', - '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.', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'providesBroadcastService' => 'The BroadcastService offered on this channel.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BroadcastChannelTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BroadcastChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BroadcastChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A unique instance of a BroadcastService on a CableOrSatelliteService lineup.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'broadcastChannelId' => ['Text'], + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], + 'broadcastServiceTier' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'genre' => ['Text', 'URL'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inBroadcastLineup' => ['CableOrSatelliteService'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'providesBroadcastService' => ['BroadcastService'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', + '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".', + 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', + 'description' => 'A description of the item.', + '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.', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'providesBroadcastService' => 'The BroadcastService offered on this channel.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BroadcastEvent.php b/src/models/jsonld/BroadcastEvent.php index 8bf08d83f..315f9b979 100644 --- a/src/models/jsonld/BroadcastEvent.php +++ b/src/models/jsonld/BroadcastEvent.php @@ -23,219 +23,219 @@ */ class BroadcastEvent extends MetaJsonLd implements BroadcastEventInterface, PublicationEventInterface, EventInterface, ThingInterface { - use BroadcastEventTrait; - use PublicationEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BroadcastEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BroadcastEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PublicationEvent'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An over the air or online broadcast event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'broadcastOfEvent' => ['Event'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'free' => ['Boolean'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'isLiveBroadcast' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'publishedBy' => ['Organization', 'Person'], - 'publishedOn' => ['BroadcastService'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'subtitleLanguage' => ['Language', 'Text'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'videoFormat' => ['Text'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'broadcastOfEvent' => 'The event being broadcast such as a sporting event or awards ceremony.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'free' => 'A flag to signal that the item, event, or place is accessible for free.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isLiveBroadcast' => 'True if the broadcast is of a live event.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'publishedBy' => 'An agent associated with the publication event.', - 'publishedOn' => 'A broadcast service associated with the publication event.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BroadcastEventTrait; + use PublicationEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BroadcastEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BroadcastEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PublicationEvent'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An over the air or online broadcast event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'broadcastOfEvent' => ['Event'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'free' => ['Boolean'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'isLiveBroadcast' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'publishedBy' => ['Organization', 'Person'], + 'publishedOn' => ['BroadcastService'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'subtitleLanguage' => ['Language', 'Text'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'videoFormat' => ['Text'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'broadcastOfEvent' => 'The event being broadcast such as a sporting event or awards ceremony.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'free' => 'A flag to signal that the item, event, or place is accessible for free.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isLiveBroadcast' => 'True if the broadcast is of a live event.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'publishedBy' => 'An agent associated with the publication event.', + 'publishedOn' => 'A broadcast service associated with the publication event.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BroadcastFrequencySpecification.php b/src/models/jsonld/BroadcastFrequencySpecification.php index a8dd4019a..e2b910e6c 100644 --- a/src/models/jsonld/BroadcastFrequencySpecification.php +++ b/src/models/jsonld/BroadcastFrequencySpecification.php @@ -24,128 +24,128 @@ */ class BroadcastFrequencySpecification extends MetaJsonLd implements BroadcastFrequencySpecificationInterface, IntangibleInterface, ThingInterface { - use BroadcastFrequencySpecificationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BroadcastFrequencySpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BroadcastFrequencySpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The frequency in MHz and the modulation used for a particular BroadcastService.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'broadcastFrequencyValue' => ['Number', 'QuantitativeValue'], - 'broadcastSignalModulation' => ['Text', 'QualitativeValue'], - 'broadcastSubChannel' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'broadcastFrequencyValue' => 'The frequency in MHz for a particular broadcast.', - 'broadcastSignalModulation' => 'The modulation (e.g. FM, AM, etc) used by a particular broadcast service.', - 'broadcastSubChannel' => 'The subchannel used for the broadcast.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BroadcastFrequencySpecificationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BroadcastFrequencySpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BroadcastFrequencySpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The frequency in MHz and the modulation used for a particular BroadcastService.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'broadcastFrequencyValue' => ['Number', 'QuantitativeValue'], + 'broadcastSignalModulation' => ['Text', 'QualitativeValue'], + 'broadcastSubChannel' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'broadcastFrequencyValue' => 'The frequency in MHz for a particular broadcast.', + 'broadcastSignalModulation' => 'The modulation (e.g. FM, AM, etc) used by a particular broadcast service.', + 'broadcastSubChannel' => 'The subchannel used for the broadcast.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BroadcastRelease.php b/src/models/jsonld/BroadcastRelease.php index dd87a8bb2..3d5808fd6 100644 --- a/src/models/jsonld/BroadcastRelease.php +++ b/src/models/jsonld/BroadcastRelease.php @@ -23,126 +23,126 @@ */ class BroadcastRelease extends MetaJsonLd implements BroadcastReleaseInterface, MusicAlbumReleaseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BroadcastReleaseTrait; - use MusicAlbumReleaseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BroadcastRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BroadcastRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'BroadcastRelease.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BroadcastReleaseTrait; + use MusicAlbumReleaseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BroadcastRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BroadcastRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'BroadcastRelease.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BroadcastService.php b/src/models/jsonld/BroadcastService.php index a652c2595..d1c151f8b 100644 --- a/src/models/jsonld/BroadcastService.php +++ b/src/models/jsonld/BroadcastService.php @@ -24,193 +24,193 @@ */ class BroadcastService extends MetaJsonLd implements BroadcastServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use BroadcastServiceTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BroadcastService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BroadcastService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A delivery service through which content is provided via broadcast over the air or online.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'area' => ['Place'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broadcastAffiliateOf' => ['Organization'], - 'broadcastDisplayName' => ['Text'], - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], - 'broadcastTimezone' => ['Text'], - 'broadcaster' => ['Organization'], - 'broker' => ['Person', 'Organization'], - 'callSign' => ['Text'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasBroadcastChannel' => ['BroadcastChannel'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'parentService' => ['BroadcastService'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'], - 'videoFormat' => ['Text'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'area' => 'The area within which users can expect to reach the broadcast service.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'broadcastAffiliateOf' => 'The media network(s) whose content is broadcast on this station.', - 'broadcastDisplayName' => 'The name displayed in the channel guide. For many US affiliates, it is the network name.', - '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".', - 'broadcastTimezone' => 'The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts.', - 'broadcaster' => 'The organization owning or operating the broadcast service.', - '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.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasBroadcastChannel' => 'A broadcast channel of a broadcast service.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'parentService' => 'A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.', - 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BroadcastServiceTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BroadcastService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BroadcastService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A delivery service through which content is provided via broadcast over the air or online.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'area' => ['Place'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broadcastAffiliateOf' => ['Organization'], + 'broadcastDisplayName' => ['Text'], + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], + 'broadcastTimezone' => ['Text'], + 'broadcaster' => ['Organization'], + 'broker' => ['Person', 'Organization'], + 'callSign' => ['Text'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasBroadcastChannel' => ['BroadcastChannel'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'parentService' => ['BroadcastService'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + 'videoFormat' => ['Text'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'area' => 'The area within which users can expect to reach the broadcast service.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'broadcastAffiliateOf' => 'The media network(s) whose content is broadcast on this station.', + 'broadcastDisplayName' => 'The name displayed in the channel guide. For many US affiliates, it is the network name.', + '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".', + 'broadcastTimezone' => 'The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts.', + 'broadcaster' => 'The organization owning or operating the broadcast service.', + '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.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasBroadcastChannel' => 'A broadcast channel of a broadcast service.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'parentService' => 'A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BrokerageAccount.php b/src/models/jsonld/BrokerageAccount.php index bc9543581..68d202ae9 100644 --- a/src/models/jsonld/BrokerageAccount.php +++ b/src/models/jsonld/BrokerageAccount.php @@ -24,181 +24,181 @@ */ class BrokerageAccount extends MetaJsonLd implements BrokerageAccountInterface, InvestmentOrDepositInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use BrokerageAccountTrait; - use InvestmentOrDepositTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BrokerageAccount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BrokerageAccount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InvestmentOrDeposit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An account that allows an investor to deposit funds and place investment orders with a licensed broker or brokerage firm.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BrokerageAccountTrait; + use InvestmentOrDepositTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BrokerageAccount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BrokerageAccount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InvestmentOrDeposit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An account that allows an investor to deposit funds and place investment orders with a licensed broker or brokerage firm.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BuddhistTemple.php b/src/models/jsonld/BuddhistTemple.php index ced0ba8d2..6ad331447 100644 --- a/src/models/jsonld/BuddhistTemple.php +++ b/src/models/jsonld/BuddhistTemple.php @@ -23,216 +23,216 @@ */ class BuddhistTemple extends MetaJsonLd implements BuddhistTempleInterface, PlaceOfWorshipInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use BuddhistTempleTrait; - use PlaceOfWorshipTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BuddhistTemple'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BuddhistTemple'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Buddhist temple.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BuddhistTempleTrait; + use PlaceOfWorshipTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BuddhistTemple'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BuddhistTemple'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Buddhist temple.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusOrCoach.php b/src/models/jsonld/BusOrCoach.php index c2e1301fe..e28fb3850 100644 --- a/src/models/jsonld/BusOrCoach.php +++ b/src/models/jsonld/BusOrCoach.php @@ -25,311 +25,311 @@ */ class BusOrCoach extends MetaJsonLd implements BusOrCoachInterface, VehicleInterface, ProductInterface, ThingInterface { - use BusOrCoachTrait; - use VehicleTrait; - use ProductTrait; - use ThingTrait; + use BusOrCoachTrait; + use VehicleTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusOrCoach'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusOrCoach'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusOrCoach'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusOrCoach'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bus (also omnibus or autobus) is a road vehicle designed to carry passengers. Coaches are luxury busses, usually in service for long distance travel.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bus (also omnibus or autobus) is a road vehicle designed to carry passengers. Coaches are luxury busses, usually in service for long distance travel.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accelerationTime' => ['QuantitativeValue'], - 'acrissCode' => ['Text'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bodyType' => ['URL', 'QualitativeValue', 'Text'], - 'brand' => ['Brand', 'Organization'], - 'callSign' => ['Text'], - 'cargoVolume' => ['QuantitativeValue'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'dateVehicleFirstRegistered' => ['Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], - 'emissionsCO2' => ['Number'], - 'fuelCapacity' => ['QuantitativeValue'], - 'fuelConsumption' => ['QuantitativeValue'], - 'fuelEfficiency' => ['QuantitativeValue'], - 'fuelType' => ['URL', 'QualitativeValue', 'Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knownVehicleDamages' => ['Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], - 'mileageFromOdometer' => ['QuantitativeValue'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'modelDate' => ['Date'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'numberOfAirbags' => ['Number', 'Text'], - 'numberOfAxles' => ['Number', 'QuantitativeValue'], - 'numberOfDoors' => ['Number', 'QuantitativeValue'], - 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], - 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'payload' => ['QuantitativeValue'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'roofLoad' => ['QuantitativeValue'], - 'sameAs' => ['URL'], - 'seatingCapacity' => ['Number', 'QuantitativeValue'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'speed' => ['QuantitativeValue'], - 'steeringPosition' => ['SteeringPositionValue'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'tongueWeight' => ['QuantitativeValue'], - 'trailerWeight' => ['QuantitativeValue'], - 'url' => ['URL'], - 'vehicleConfiguration' => ['Text'], - 'vehicleEngine' => ['EngineSpecification'], - 'vehicleIdentificationNumber' => ['Text'], - 'vehicleInteriorColor' => ['Text'], - 'vehicleInteriorType' => ['Text'], - 'vehicleModelDate' => ['Date'], - 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], - 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], - 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], - 'weight' => ['QuantitativeValue'], - 'weightTotal' => ['QuantitativeValue'], - 'wheelbase' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accelerationTime' => ['QuantitativeValue'], + 'acrissCode' => ['Text'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bodyType' => ['URL', 'QualitativeValue', 'Text'], + 'brand' => ['Brand', 'Organization'], + 'callSign' => ['Text'], + 'cargoVolume' => ['QuantitativeValue'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'dateVehicleFirstRegistered' => ['Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], + 'emissionsCO2' => ['Number'], + 'fuelCapacity' => ['QuantitativeValue'], + 'fuelConsumption' => ['QuantitativeValue'], + 'fuelEfficiency' => ['QuantitativeValue'], + 'fuelType' => ['URL', 'QualitativeValue', 'Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knownVehicleDamages' => ['Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], + 'mileageFromOdometer' => ['QuantitativeValue'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'modelDate' => ['Date'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'numberOfAirbags' => ['Number', 'Text'], + 'numberOfAxles' => ['Number', 'QuantitativeValue'], + 'numberOfDoors' => ['Number', 'QuantitativeValue'], + 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], + 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'payload' => ['QuantitativeValue'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'roofLoad' => ['QuantitativeValue'], + 'sameAs' => ['URL'], + 'seatingCapacity' => ['Number', 'QuantitativeValue'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'speed' => ['QuantitativeValue'], + 'steeringPosition' => ['SteeringPositionValue'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'tongueWeight' => ['QuantitativeValue'], + 'trailerWeight' => ['QuantitativeValue'], + 'url' => ['URL'], + 'vehicleConfiguration' => ['Text'], + 'vehicleEngine' => ['EngineSpecification'], + 'vehicleIdentificationNumber' => ['Text'], + 'vehicleInteriorColor' => ['Text'], + 'vehicleInteriorType' => ['Text'], + 'vehicleModelDate' => ['Date'], + 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], + 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], + 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], + 'weight' => ['QuantitativeValue'], + 'weightTotal' => ['QuantitativeValue'], + 'wheelbase' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', - 'acrissCode' => 'The ACRISS Car Classification Code is a code used by many car rental companies, for classifying vehicles. ACRISS stands for Association of Car Rental Industry Systems and Standards.', - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', - 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', - 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', - 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', - 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', - 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', - 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', - 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', - 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', - 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', - 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - 'roofLoad' => 'The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]] * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - '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.', - 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', - 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'url' => 'URL of the item.', - 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', - 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', - 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', - 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', - 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', - 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', - 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', - 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', - 'weight' => 'The weight of the product or person.', - 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', + 'acrissCode' => 'The ACRISS Car Classification Code is a code used by many car rental companies, for classifying vehicles. ACRISS stands for Association of Car Rental Industry Systems and Standards.', + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', + 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', + 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', + 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', + 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', + 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', + 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', + 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', + 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', + 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', + 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + 'roofLoad' => 'The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]] * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + '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.', + 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', + 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'url' => 'URL of the item.', + 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', + 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', + 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', + 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', + 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', + 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', + 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', + 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', + 'weight' => 'The weight of the product or person.', + 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/BusReservation.php b/src/models/jsonld/BusReservation.php index a7ac19e3d..3de22043b 100644 --- a/src/models/jsonld/BusReservation.php +++ b/src/models/jsonld/BusReservation.php @@ -26,149 +26,149 @@ */ class BusReservation extends MetaJsonLd implements BusReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use BusReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation for bus travel. \n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation for bus travel. \n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusStation.php b/src/models/jsonld/BusStation.php index d461c288e..259b9ddc9 100644 --- a/src/models/jsonld/BusStation.php +++ b/src/models/jsonld/BusStation.php @@ -23,215 +23,215 @@ */ class BusStation extends MetaJsonLd implements BusStationInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use BusStationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusStation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusStation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bus station.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusStationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusStation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusStation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bus station.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusStop.php b/src/models/jsonld/BusStop.php index 1e616c6a9..c3f8d1e9e 100644 --- a/src/models/jsonld/BusStop.php +++ b/src/models/jsonld/BusStop.php @@ -23,215 +23,215 @@ */ class BusStop extends MetaJsonLd implements BusStopInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use BusStopTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusStop'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusStop'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A bus stop.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusStopTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusStop'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusStop'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A bus stop.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusTrip.php b/src/models/jsonld/BusTrip.php index 28393df4f..8b96d30d5 100644 --- a/src/models/jsonld/BusTrip.php +++ b/src/models/jsonld/BusTrip.php @@ -23,145 +23,145 @@ */ class BusTrip extends MetaJsonLd implements BusTripInterface, TripInterface, IntangibleInterface, ThingInterface { - use BusTripTrait; - use TripTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trip on a commercial bus line.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'arrivalBusStop' => ['BusStop', 'BusStation'], - 'arrivalTime' => ['DateTime', 'Time'], - 'busName' => ['Text'], - 'busNumber' => ['Text'], - 'departureBusStop' => ['BusStop', 'BusStation'], - 'departureTime' => ['Time', 'DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itinerary' => ['ItemList', 'Place'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfTrip' => ['Trip'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'sameAs' => ['URL'], - 'subTrip' => ['Trip'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'arrivalBusStop' => 'The stop or station from which the bus arrives.', - 'arrivalTime' => 'The expected arrival time.', - 'busName' => 'The name of the bus (e.g. Bolt Express).', - 'busNumber' => 'The unique identifier for the bus.', - 'departureBusStop' => 'The stop or station from which the bus departs.', - 'departureTime' => 'The expected departure time.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusTripTrait; + use TripTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trip on a commercial bus line.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'arrivalBusStop' => ['BusStop', 'BusStation'], + 'arrivalTime' => ['DateTime', 'Time'], + 'busName' => ['Text'], + 'busNumber' => ['Text'], + 'departureBusStop' => ['BusStop', 'BusStation'], + 'departureTime' => ['Time', 'DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itinerary' => ['ItemList', 'Place'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfTrip' => ['Trip'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'sameAs' => ['URL'], + 'subTrip' => ['Trip'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'arrivalBusStop' => 'The stop or station from which the bus arrives.', + 'arrivalTime' => 'The expected arrival time.', + 'busName' => 'The name of the bus (e.g. Bolt Express).', + 'busNumber' => 'The unique identifier for the bus.', + 'departureBusStop' => 'The stop or station from which the bus departs.', + 'departureTime' => 'The expected departure time.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusinessAudience.php b/src/models/jsonld/BusinessAudience.php index d6b901a8e..0ded92df3 100644 --- a/src/models/jsonld/BusinessAudience.php +++ b/src/models/jsonld/BusinessAudience.php @@ -24,133 +24,133 @@ */ class BusinessAudience extends MetaJsonLd implements BusinessAudienceInterface, AudienceInterface, IntangibleInterface, ThingInterface { - use BusinessAudienceTrait; - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusinessAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusinessAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of characteristics belonging to businesses, e.g. who compose an item\'s target audience.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'audienceType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'geographicArea' => ['AdministrativeArea'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'yearlyRevenue' => ['QuantitativeValue'], - 'yearsInOperation' => ['QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'description' => 'A description of the item.', - '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.', - 'geographicArea' => 'The geographic area associated with the audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'yearlyRevenue' => 'The size of the business in annual revenue.', - 'yearsInOperation' => 'The age of the business.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusinessAudienceTrait; + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusinessAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusinessAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of characteristics belonging to businesses, e.g. who compose an item\'s target audience.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'audienceType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'geographicArea' => ['AdministrativeArea'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'yearlyRevenue' => ['QuantitativeValue'], + 'yearsInOperation' => ['QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'description' => 'A description of the item.', + '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.', + 'geographicArea' => 'The geographic area associated with the audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'yearlyRevenue' => 'The size of the business in annual revenue.', + 'yearsInOperation' => 'The age of the business.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusinessEntityType.php b/src/models/jsonld/BusinessEntityType.php index f9d6a4cb9..98647db15 100644 --- a/src/models/jsonld/BusinessEntityType.php +++ b/src/models/jsonld/BusinessEntityType.php @@ -29,125 +29,125 @@ */ class BusinessEntityType extends MetaJsonLd implements BusinessEntityTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BusinessEntityTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusinessEntityType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusinessEntityType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A business entity type is a conceptual entity representing the legal form, the size, the main line of business, the position in the value chain, or any combination thereof, of an organization or business person.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#Business\\n* http://purl.org/goodrelations/v1#Enduser\\n* http://purl.org/goodrelations/v1#PublicInstitution\\n* http://purl.org/goodrelations/v1#Reseller\n\t "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusinessEntityTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusinessEntityType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusinessEntityType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A business entity type is a conceptual entity representing the legal form, the size, the main line of business, the position in the value chain, or any combination thereof, of an organization or business person.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#Business\\n* http://purl.org/goodrelations/v1#Enduser\\n* http://purl.org/goodrelations/v1#PublicInstitution\\n* http://purl.org/goodrelations/v1#Reseller\n\t "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusinessEvent.php b/src/models/jsonld/BusinessEvent.php index 576b0af46..93966b148 100644 --- a/src/models/jsonld/BusinessEvent.php +++ b/src/models/jsonld/BusinessEvent.php @@ -23,204 +23,204 @@ */ class BusinessEvent extends MetaJsonLd implements BusinessEventInterface, EventInterface, ThingInterface { - use BusinessEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusinessEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusinessEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Business event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusinessEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusinessEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusinessEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Business event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusinessFunction.php b/src/models/jsonld/BusinessFunction.php index 1c60afb75..37af6a682 100644 --- a/src/models/jsonld/BusinessFunction.php +++ b/src/models/jsonld/BusinessFunction.php @@ -36,125 +36,125 @@ */ class BusinessFunction extends MetaJsonLd implements BusinessFunctionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BusinessFunctionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusinessFunction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusinessFunction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "The business function specifies the type of activity or access (i.e., the bundle of rights) offered by the organization or business person through the offer. Typical are sell, rental or lease, maintenance or repair, manufacture / produce, recycle / dispose, engineering / construction, or installation. Proprietary specifications of access rights are also instances of this class.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#ConstructionInstallation\\n* http://purl.org/goodrelations/v1#Dispose\\n* http://purl.org/goodrelations/v1#LeaseOut\\n* http://purl.org/goodrelations/v1#Maintain\\n* http://purl.org/goodrelations/v1#ProvideService\\n* http://purl.org/goodrelations/v1#Repair\\n* http://purl.org/goodrelations/v1#Sell\\n* http://purl.org/goodrelations/v1#Buy\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusinessFunctionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusinessFunction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusinessFunction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "The business function specifies the type of activity or access (i.e., the bundle of rights) offered by the organization or business person through the offer. Typical are sell, rental or lease, maintenance or repair, manufacture / produce, recycle / dispose, engineering / construction, or installation. Proprietary specifications of access rights are also instances of this class.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#ConstructionInstallation\\n* http://purl.org/goodrelations/v1#Dispose\\n* http://purl.org/goodrelations/v1#LeaseOut\\n* http://purl.org/goodrelations/v1#Maintain\\n* http://purl.org/goodrelations/v1#ProvideService\\n* http://purl.org/goodrelations/v1#Repair\\n* http://purl.org/goodrelations/v1#Sell\\n* http://purl.org/goodrelations/v1#Buy\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BusinessSupport.php b/src/models/jsonld/BusinessSupport.php index 8779b7dab..10f88b446 100644 --- a/src/models/jsonld/BusinessSupport.php +++ b/src/models/jsonld/BusinessSupport.php @@ -23,126 +23,126 @@ */ class BusinessSupport extends MetaJsonLd implements BusinessSupportInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use BusinessSupportTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BusinessSupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BusinessSupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'BusinessSupport: this is a benefit for supporting businesses.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BusinessSupportTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BusinessSupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BusinessSupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'BusinessSupport: this is a benefit for supporting businesses.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/BuyAction.php b/src/models/jsonld/BuyAction.php index bda735a77..ebe82bda8 100644 --- a/src/models/jsonld/BuyAction.php +++ b/src/models/jsonld/BuyAction.php @@ -25,159 +25,159 @@ */ class BuyAction extends MetaJsonLd implements BuyActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use BuyActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'BuyAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/BuyAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of giving money to a seller in exchange for goods or services rendered. An agent buys an object, product, or service from a seller for a price. Reciprocal of SellAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'], - 'vendor' => ['Organization', 'Person'], - 'warrantyPromise' => ['WarrantyPromise'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.', - 'vendor' => '\'vendor\' is an earlier term for \'seller\'.', - 'warrantyPromise' => 'The warranty promise(s) included in the offer.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use BuyActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'BuyAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/BuyAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of giving money to a seller in exchange for goods or services rendered. An agent buys an object, product, or service from a seller for a price. Reciprocal of SellAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + 'vendor' => ['Organization', 'Person'], + 'warrantyPromise' => ['WarrantyPromise'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + 'vendor' => '\'vendor\' is an earlier term for \'seller\'.', + 'warrantyPromise' => 'The warranty promise(s) included in the offer.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CDCPMDRecord.php b/src/models/jsonld/CDCPMDRecord.php index 18f88db38..865a8fdee 100644 --- a/src/models/jsonld/CDCPMDRecord.php +++ b/src/models/jsonld/CDCPMDRecord.php @@ -27,157 +27,157 @@ */ class CDCPMDRecord extends MetaJsonLd implements CDCPMDRecordInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use CDCPMDRecordTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CDCPMDRecord'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CDCPMDRecord'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A CDCPMDRecord is a data structure representing a record in a CDC tabular data format\n used for hospital data reporting. See [documentation](/docs/cdc-covid.html) for details, and the linked CDC materials for authoritative\n definitions used as the source here.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'cvdCollectionDate' => ['DateTime', 'Text'], - 'cvdFacilityCounty' => ['Text'], - 'cvdFacilityId' => ['Text'], - 'cvdNumBeds' => ['Number'], - 'cvdNumBedsOcc' => ['Number'], - 'cvdNumC19Died' => ['Number'], - 'cvdNumC19HOPats' => ['Number'], - 'cvdNumC19HospPats' => ['Number'], - 'cvdNumC19MechVentPats' => ['Number'], - 'cvdNumC19OFMechVentPats' => ['Number'], - 'cvdNumC19OverflowPats' => ['Number'], - 'cvdNumICUBeds' => ['Number'], - 'cvdNumICUBedsOcc' => ['Number'], - 'cvdNumTotBeds' => ['Number'], - 'cvdNumVent' => ['Number'], - 'cvdNumVentUse' => ['Number'], - 'datePosted' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'cvdCollectionDate' => 'collectiondate - Date for which patient counts are reported.', - 'cvdFacilityCounty' => 'Name of the County of the NHSN facility that this data record applies to. Use [[cvdFacilityId]] to identify the facility. To provide other details, [[healthcareReportingData]] can be used on a [[Hospital]] entry.', - 'cvdFacilityId' => 'Identifier of the NHSN facility that this data record applies to. Use [[cvdFacilityCounty]] to indicate the county. To provide other details, [[healthcareReportingData]] can be used on a [[Hospital]] entry.', - 'cvdNumBeds' => 'numbeds - HOSPITAL INPATIENT BEDS: Inpatient beds, including all staffed, licensed, and overflow (surge) beds used for inpatients.', - 'cvdNumBedsOcc' => 'numbedsocc - HOSPITAL INPATIENT BED OCCUPANCY: Total number of staffed inpatient beds that are occupied.', - 'cvdNumC19Died' => 'numc19died - DEATHS: Patients with suspected or confirmed COVID-19 who died in the hospital, ED, or any overflow location.', - 'cvdNumC19HOPats' => 'numc19hopats - HOSPITAL ONSET: Patients hospitalized in an NHSN inpatient care location with onset of suspected or confirmed COVID-19 14 or more days after hospitalization.', - 'cvdNumC19HospPats' => 'numc19hosppats - HOSPITALIZED: Patients currently hospitalized in an inpatient care location who have suspected or confirmed COVID-19.', - 'cvdNumC19MechVentPats' => 'numc19mechventpats - HOSPITALIZED and VENTILATED: Patients hospitalized in an NHSN inpatient care location who have suspected or confirmed COVID-19 and are on a mechanical ventilator.', - 'cvdNumC19OFMechVentPats' => 'numc19ofmechventpats - ED/OVERFLOW and VENTILATED: Patients with suspected or confirmed COVID-19 who are in the ED or any overflow location awaiting an inpatient bed and on a mechanical ventilator.', - 'cvdNumC19OverflowPats' => 'numc19overflowpats - ED/OVERFLOW: Patients with suspected or confirmed COVID-19 who are in the ED or any overflow location awaiting an inpatient bed.', - 'cvdNumICUBeds' => 'numicubeds - ICU BEDS: Total number of staffed inpatient intensive care unit (ICU) beds.', - 'cvdNumICUBedsOcc' => 'numicubedsocc - ICU BED OCCUPANCY: Total number of staffed inpatient ICU beds that are occupied.', - 'cvdNumTotBeds' => 'numtotbeds - ALL HOSPITAL BEDS: Total number of all inpatient and outpatient beds, including all staffed, ICU, licensed, and overflow (surge) beds used for inpatients or outpatients.', - 'cvdNumVent' => 'numvent - MECHANICAL VENTILATORS: Total number of ventilators available.', - 'cvdNumVentUse' => 'numventuse - MECHANICAL VENTILATORS IN USE: Total number of ventilators in use.', - 'datePosted' => 'Publication date of an online listing.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CDCPMDRecordTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CDCPMDRecord'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CDCPMDRecord'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A CDCPMDRecord is a data structure representing a record in a CDC tabular data format\n used for hospital data reporting. See [documentation](/docs/cdc-covid.html) for details, and the linked CDC materials for authoritative\n definitions used as the source here.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'cvdCollectionDate' => ['DateTime', 'Text'], + 'cvdFacilityCounty' => ['Text'], + 'cvdFacilityId' => ['Text'], + 'cvdNumBeds' => ['Number'], + 'cvdNumBedsOcc' => ['Number'], + 'cvdNumC19Died' => ['Number'], + 'cvdNumC19HOPats' => ['Number'], + 'cvdNumC19HospPats' => ['Number'], + 'cvdNumC19MechVentPats' => ['Number'], + 'cvdNumC19OFMechVentPats' => ['Number'], + 'cvdNumC19OverflowPats' => ['Number'], + 'cvdNumICUBeds' => ['Number'], + 'cvdNumICUBedsOcc' => ['Number'], + 'cvdNumTotBeds' => ['Number'], + 'cvdNumVent' => ['Number'], + 'cvdNumVentUse' => ['Number'], + 'datePosted' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'cvdCollectionDate' => 'collectiondate - Date for which patient counts are reported.', + 'cvdFacilityCounty' => 'Name of the County of the NHSN facility that this data record applies to. Use [[cvdFacilityId]] to identify the facility. To provide other details, [[healthcareReportingData]] can be used on a [[Hospital]] entry.', + 'cvdFacilityId' => 'Identifier of the NHSN facility that this data record applies to. Use [[cvdFacilityCounty]] to indicate the county. To provide other details, [[healthcareReportingData]] can be used on a [[Hospital]] entry.', + 'cvdNumBeds' => 'numbeds - HOSPITAL INPATIENT BEDS: Inpatient beds, including all staffed, licensed, and overflow (surge) beds used for inpatients.', + 'cvdNumBedsOcc' => 'numbedsocc - HOSPITAL INPATIENT BED OCCUPANCY: Total number of staffed inpatient beds that are occupied.', + 'cvdNumC19Died' => 'numc19died - DEATHS: Patients with suspected or confirmed COVID-19 who died in the hospital, ED, or any overflow location.', + 'cvdNumC19HOPats' => 'numc19hopats - HOSPITAL ONSET: Patients hospitalized in an NHSN inpatient care location with onset of suspected or confirmed COVID-19 14 or more days after hospitalization.', + 'cvdNumC19HospPats' => 'numc19hosppats - HOSPITALIZED: Patients currently hospitalized in an inpatient care location who have suspected or confirmed COVID-19.', + 'cvdNumC19MechVentPats' => 'numc19mechventpats - HOSPITALIZED and VENTILATED: Patients hospitalized in an NHSN inpatient care location who have suspected or confirmed COVID-19 and are on a mechanical ventilator.', + 'cvdNumC19OFMechVentPats' => 'numc19ofmechventpats - ED/OVERFLOW and VENTILATED: Patients with suspected or confirmed COVID-19 who are in the ED or any overflow location awaiting an inpatient bed and on a mechanical ventilator.', + 'cvdNumC19OverflowPats' => 'numc19overflowpats - ED/OVERFLOW: Patients with suspected or confirmed COVID-19 who are in the ED or any overflow location awaiting an inpatient bed.', + 'cvdNumICUBeds' => 'numicubeds - ICU BEDS: Total number of staffed inpatient intensive care unit (ICU) beds.', + 'cvdNumICUBedsOcc' => 'numicubedsocc - ICU BED OCCUPANCY: Total number of staffed inpatient ICU beds that are occupied.', + 'cvdNumTotBeds' => 'numtotbeds - ALL HOSPITAL BEDS: Total number of all inpatient and outpatient beds, including all staffed, ICU, licensed, and overflow (surge) beds used for inpatients or outpatients.', + 'cvdNumVent' => 'numvent - MECHANICAL VENTILATORS: Total number of ventilators available.', + 'cvdNumVentUse' => 'numventuse - MECHANICAL VENTILATORS IN USE: Total number of ventilators in use.', + 'datePosted' => 'Publication date of an online listing.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CDFormat.php b/src/models/jsonld/CDFormat.php index ad6de08ca..3d91a6b5b 100644 --- a/src/models/jsonld/CDFormat.php +++ b/src/models/jsonld/CDFormat.php @@ -23,126 +23,126 @@ */ class CDFormat extends MetaJsonLd implements CDFormatInterface, MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CDFormatTrait; - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CDFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CDFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'CDFormat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CDFormatTrait; + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CDFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CDFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'CDFormat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CT.php b/src/models/jsonld/CT.php index 4d3084036..9a8a6a4a9 100644 --- a/src/models/jsonld/CT.php +++ b/src/models/jsonld/CT.php @@ -23,127 +23,127 @@ */ class CT extends MetaJsonLd implements CTInterface, MedicalImagingTechniqueInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CTTrait; - use MedicalImagingTechniqueTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CT'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CT'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'X-ray computed tomography imaging.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CTTrait; + use MedicalImagingTechniqueTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CT'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CT'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'X-ray computed tomography imaging.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CableOrSatelliteService.php b/src/models/jsonld/CableOrSatelliteService.php index 0b65cbbf1..459a01d93 100644 --- a/src/models/jsonld/CableOrSatelliteService.php +++ b/src/models/jsonld/CableOrSatelliteService.php @@ -24,171 +24,171 @@ */ class CableOrSatelliteService extends MetaJsonLd implements CableOrSatelliteServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use CableOrSatelliteServiceTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CableOrSatelliteService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CableOrSatelliteService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A service which provides access to media programming like TV or radio. Access may be via cable or satellite.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CableOrSatelliteServiceTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CableOrSatelliteService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CableOrSatelliteService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A service which provides access to media programming like TV or radio. Access may be via cable or satellite.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CafeOrCoffeeShop.php b/src/models/jsonld/CafeOrCoffeeShop.php index 18874c719..a9dfc42a5 100644 --- a/src/models/jsonld/CafeOrCoffeeShop.php +++ b/src/models/jsonld/CafeOrCoffeeShop.php @@ -23,341 +23,341 @@ */ class CafeOrCoffeeShop extends MetaJsonLd implements CafeOrCoffeeShopInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use CafeOrCoffeeShopTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use CafeOrCoffeeShopTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CafeOrCoffeeShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CafeOrCoffeeShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CafeOrCoffeeShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CafeOrCoffeeShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A cafe or coffee shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A cafe or coffee shop.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Campground.php b/src/models/jsonld/Campground.php index 82ff39c4f..d554954ad 100644 --- a/src/models/jsonld/Campground.php +++ b/src/models/jsonld/Campground.php @@ -34,346 +34,346 @@ */ class Campground extends MetaJsonLd implements CampgroundInterface, LodgingBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, CivicStructureInterface { - use CampgroundTrait; - use LodgingBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use CivicStructureTrait; + use CampgroundTrait; + use LodgingBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use CivicStructureTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Campground'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Campground'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Campground'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Campground'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A camping site, campsite, or [[Campground]] is a place used for overnight stay in the outdoors, typically containing individual [[CampingPitch]] locations. \\n\\n\nIn British English a campsite is an area, usually divided into a number of pitches, where people can camp overnight using tents or camper vans or caravans; this British English use of the word is synonymous with the American English expression campground. In American English the term campsite generally means an area where an individual, family, group, or military unit can pitch a tent or park a camper; a campground may contain many campsites (source: Wikipedia, see [https://en.wikipedia.org/wiki/Campsite](https://en.wikipedia.org/wiki/Campsite)).\\n\\n\n\nSee also the dedicated [document on the use of schema.org for marking up hotels and other forms of accommodations](/docs/hotels.html)."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A camping site, campsite, or [[Campground]] is a place used for overnight stay in the outdoors, typically containing individual [[CampingPitch]] locations. \\n\\n\nIn British English a campsite is an area, usually divided into a number of pitches, where people can camp overnight using tents or camper vans or caravans; this British English use of the word is synonymous with the American English expression campground. In American English the term campsite generally means an area where an individual, family, group, or military unit can pitch a tent or park a camper; a campground may contain many campsites (source: Wikipedia, see [https://en.wikipedia.org/wiki/Campsite](https://en.wikipedia.org/wiki/Campsite)).\\n\\n\n\nSee also the dedicated [document on the use of schema.org for marking up hotels and other forms of accommodations](/docs/hotels.html)."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CampingPitch.php b/src/models/jsonld/CampingPitch.php index d894ae488..c5a366513 100644 --- a/src/models/jsonld/CampingPitch.php +++ b/src/models/jsonld/CampingPitch.php @@ -34,239 +34,239 @@ */ class CampingPitch extends MetaJsonLd implements CampingPitchInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use CampingPitchTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use CampingPitchTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CampingPitch'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CampingPitch'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CampingPitch'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CampingPitch'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A [[CampingPitch]] is an individual place for overnight stay in the outdoors, typically being part of a larger camping site, or [[Campground]].\\n\\n\nIn British English a campsite, or campground, is an area, usually divided into a number of pitches, where people can camp overnight using tents or camper vans or caravans; this British English use of the word is synonymous with the American English expression campground. In American English the term campsite generally means an area where an individual, family, group, or military unit can pitch a tent or park a camper; a campground may contain many campsites.\n(Source: Wikipedia, see [https://en.wikipedia.org/wiki/Campsite](https://en.wikipedia.org/wiki/Campsite).)\\n\\n\nSee also the dedicated [document on the use of schema.org for marking up hotels and other forms of accommodations](/docs/hotels.html)."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A [[CampingPitch]] is an individual place for overnight stay in the outdoors, typically being part of a larger camping site, or [[Campground]].\\n\\n\nIn British English a campsite, or campground, is an area, usually divided into a number of pitches, where people can camp overnight using tents or camper vans or caravans; this British English use of the word is synonymous with the American English expression campground. In American English the term campsite generally means an area where an individual, family, group, or military unit can pitch a tent or park a camper; a campground may contain many campsites.\n(Source: Wikipedia, see [https://en.wikipedia.org/wiki/Campsite](https://en.wikipedia.org/wiki/Campsite).)\\n\\n\nSee also the dedicated [document on the use of schema.org for marking up hotels and other forms of accommodations](/docs/hotels.html)."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Canal.php b/src/models/jsonld/Canal.php index 990371b55..26b3f760b 100644 --- a/src/models/jsonld/Canal.php +++ b/src/models/jsonld/Canal.php @@ -23,214 +23,214 @@ */ class Canal extends MetaJsonLd implements CanalInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use CanalTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Canal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Canal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A canal, like the Panama Canal.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CanalTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Canal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Canal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A canal, like the Panama Canal.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CancelAction.php b/src/models/jsonld/CancelAction.php index 20b506ba4..72f1d26dc 100644 --- a/src/models/jsonld/CancelAction.php +++ b/src/models/jsonld/CancelAction.php @@ -25,150 +25,150 @@ */ class CancelAction extends MetaJsonLd implements CancelActionInterface, PlanActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use CancelActionTrait; - use PlanActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CancelAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CancelAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlanAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of asserting that a future event/action is no longer going to happen.\n\nRelated actions:\n\n* [[ConfirmAction]]: The antonym of CancelAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'scheduledTime' => ['DateTime'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'scheduledTime' => 'The time the object is scheduled to.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CancelActionTrait; + use PlanActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CancelAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CancelAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlanAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of asserting that a future event/action is no longer going to happen.\n\nRelated actions:\n\n* [[ConfirmAction]]: The antonym of CancelAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'scheduledTime' => ['DateTime'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'scheduledTime' => 'The time the object is scheduled to.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Car.php b/src/models/jsonld/Car.php index 3d65dbe08..2709dd169 100644 --- a/src/models/jsonld/Car.php +++ b/src/models/jsonld/Car.php @@ -23,311 +23,311 @@ */ class Car extends MetaJsonLd implements CarInterface, VehicleInterface, ProductInterface, ThingInterface { - use CarTrait; - use VehicleTrait; - use ProductTrait; - use ThingTrait; + use CarTrait; + use VehicleTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Car'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Car'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Car'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Car'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A car is a wheeled, self-powered motor vehicle used for transportation.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A car is a wheeled, self-powered motor vehicle used for transportation.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accelerationTime' => ['QuantitativeValue'], - 'acrissCode' => ['Text'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bodyType' => ['URL', 'QualitativeValue', 'Text'], - 'brand' => ['Brand', 'Organization'], - 'callSign' => ['Text'], - 'cargoVolume' => ['QuantitativeValue'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'dateVehicleFirstRegistered' => ['Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], - 'emissionsCO2' => ['Number'], - 'fuelCapacity' => ['QuantitativeValue'], - 'fuelConsumption' => ['QuantitativeValue'], - 'fuelEfficiency' => ['QuantitativeValue'], - 'fuelType' => ['URL', 'QualitativeValue', 'Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knownVehicleDamages' => ['Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], - 'mileageFromOdometer' => ['QuantitativeValue'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'modelDate' => ['Date'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'numberOfAirbags' => ['Number', 'Text'], - 'numberOfAxles' => ['Number', 'QuantitativeValue'], - 'numberOfDoors' => ['Number', 'QuantitativeValue'], - 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], - 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'payload' => ['QuantitativeValue'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'roofLoad' => ['QuantitativeValue'], - 'sameAs' => ['URL'], - 'seatingCapacity' => ['Number', 'QuantitativeValue'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'speed' => ['QuantitativeValue'], - 'steeringPosition' => ['SteeringPositionValue'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'tongueWeight' => ['QuantitativeValue'], - 'trailerWeight' => ['QuantitativeValue'], - 'url' => ['URL'], - 'vehicleConfiguration' => ['Text'], - 'vehicleEngine' => ['EngineSpecification'], - 'vehicleIdentificationNumber' => ['Text'], - 'vehicleInteriorColor' => ['Text'], - 'vehicleInteriorType' => ['Text'], - 'vehicleModelDate' => ['Date'], - 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], - 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], - 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], - 'weight' => ['QuantitativeValue'], - 'weightTotal' => ['QuantitativeValue'], - 'wheelbase' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accelerationTime' => ['QuantitativeValue'], + 'acrissCode' => ['Text'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bodyType' => ['URL', 'QualitativeValue', 'Text'], + 'brand' => ['Brand', 'Organization'], + 'callSign' => ['Text'], + 'cargoVolume' => ['QuantitativeValue'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'dateVehicleFirstRegistered' => ['Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], + 'emissionsCO2' => ['Number'], + 'fuelCapacity' => ['QuantitativeValue'], + 'fuelConsumption' => ['QuantitativeValue'], + 'fuelEfficiency' => ['QuantitativeValue'], + 'fuelType' => ['URL', 'QualitativeValue', 'Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knownVehicleDamages' => ['Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], + 'mileageFromOdometer' => ['QuantitativeValue'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'modelDate' => ['Date'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'numberOfAirbags' => ['Number', 'Text'], + 'numberOfAxles' => ['Number', 'QuantitativeValue'], + 'numberOfDoors' => ['Number', 'QuantitativeValue'], + 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], + 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'payload' => ['QuantitativeValue'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'roofLoad' => ['QuantitativeValue'], + 'sameAs' => ['URL'], + 'seatingCapacity' => ['Number', 'QuantitativeValue'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'speed' => ['QuantitativeValue'], + 'steeringPosition' => ['SteeringPositionValue'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'tongueWeight' => ['QuantitativeValue'], + 'trailerWeight' => ['QuantitativeValue'], + 'url' => ['URL'], + 'vehicleConfiguration' => ['Text'], + 'vehicleEngine' => ['EngineSpecification'], + 'vehicleIdentificationNumber' => ['Text'], + 'vehicleInteriorColor' => ['Text'], + 'vehicleInteriorType' => ['Text'], + 'vehicleModelDate' => ['Date'], + 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], + 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], + 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], + 'weight' => ['QuantitativeValue'], + 'weightTotal' => ['QuantitativeValue'], + 'wheelbase' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', - 'acrissCode' => 'The ACRISS Car Classification Code is a code used by many car rental companies, for classifying vehicles. ACRISS stands for Association of Car Rental Industry Systems and Standards.', - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', - 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', - 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', - 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', - 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', - 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', - 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', - 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', - 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', - 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', - 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - 'roofLoad' => 'The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]] * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - '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.', - 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', - 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'url' => 'URL of the item.', - 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', - 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', - 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', - 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', - 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', - 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', - 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', - 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', - 'weight' => 'The weight of the product or person.', - 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', + 'acrissCode' => 'The ACRISS Car Classification Code is a code used by many car rental companies, for classifying vehicles. ACRISS stands for Association of Car Rental Industry Systems and Standards.', + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', + 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', + 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', + 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', + 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', + 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', + 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', + 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', + 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', + 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', + 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + 'roofLoad' => 'The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]] * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + '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.', + 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', + 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'url' => 'URL of the item.', + 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', + 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', + 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', + 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', + 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', + 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', + 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', + 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', + 'weight' => 'The weight of the product or person.', + 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CarUsageType.php b/src/models/jsonld/CarUsageType.php index edb0cdeb5..d03dbb03d 100644 --- a/src/models/jsonld/CarUsageType.php +++ b/src/models/jsonld/CarUsageType.php @@ -24,125 +24,125 @@ */ class CarUsageType extends MetaJsonLd implements CarUsageTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CarUsageTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CarUsageType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CarUsageType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A value indicating a special usage of a car, e.g. commercial rental, driving school, or as a taxi.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CarUsageTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CarUsageType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CarUsageType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A value indicating a special usage of a car, e.g. commercial rental, driving school, or as a taxi.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Cardiovascular.php b/src/models/jsonld/Cardiovascular.php index bb4ad6d07..ee2be2c1a 100644 --- a/src/models/jsonld/Cardiovascular.php +++ b/src/models/jsonld/Cardiovascular.php @@ -24,128 +24,128 @@ */ class Cardiovascular extends MetaJsonLd implements CardiovascularInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use CardiovascularTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Cardiovascular'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Cardiovascular'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of heart and vasculature.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CardiovascularTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Cardiovascular'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Cardiovascular'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of heart and vasculature.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CardiovascularExam.php b/src/models/jsonld/CardiovascularExam.php index 7dbc84bb3..95fc90ca2 100644 --- a/src/models/jsonld/CardiovascularExam.php +++ b/src/models/jsonld/CardiovascularExam.php @@ -23,157 +23,157 @@ */ class CardiovascularExam extends MetaJsonLd implements CardiovascularExamInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use CardiovascularExamTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CardiovascularExam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CardiovascularExam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Cardiovascular system assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CardiovascularExamTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CardiovascularExam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CardiovascularExam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Cardiovascular system assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CaseSeries.php b/src/models/jsonld/CaseSeries.php index d422e1f66..fcb0f7024 100644 --- a/src/models/jsonld/CaseSeries.php +++ b/src/models/jsonld/CaseSeries.php @@ -30,127 +30,127 @@ */ class CaseSeries extends MetaJsonLd implements CaseSeriesInterface, MedicalObservationalStudyDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CaseSeriesTrait; - use MedicalObservationalStudyDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CaseSeries'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CaseSeries'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A case series (also known as a clinical series) is a medical research study that tracks patients with a known exposure given similar treatment or examines their medical records for exposure and outcome. A case series can be retrospective or prospective and usually involves a smaller number of patients than the more powerful case-control studies or randomized controlled trials. Case series may be consecutive or non-consecutive, depending on whether all cases presenting to the reporting authors over a period of time were included, or only a selection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CaseSeriesTrait; + use MedicalObservationalStudyDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CaseSeries'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CaseSeries'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A case series (also known as a clinical series) is a medical research study that tracks patients with a known exposure given similar treatment or examines their medical records for exposure and outcome. A case series can be retrospective or prospective and usually involves a smaller number of patients than the more powerful case-control studies or randomized controlled trials. Case series may be consecutive or non-consecutive, depending on whether all cases presenting to the reporting authors over a period of time were included, or only a selection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Casino.php b/src/models/jsonld/Casino.php index f988c65f2..69205cc8b 100644 --- a/src/models/jsonld/Casino.php +++ b/src/models/jsonld/Casino.php @@ -23,331 +23,331 @@ */ class Casino extends MetaJsonLd implements CasinoInterface, EntertainmentBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use CasinoTrait; - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use CasinoTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Casino'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Casino'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Casino'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Casino'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A casino.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A casino.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CassetteFormat.php b/src/models/jsonld/CassetteFormat.php index 5985ed271..db5a66892 100644 --- a/src/models/jsonld/CassetteFormat.php +++ b/src/models/jsonld/CassetteFormat.php @@ -23,126 +23,126 @@ */ class CassetteFormat extends MetaJsonLd implements CassetteFormatInterface, MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CassetteFormatTrait; - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CassetteFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CassetteFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'CassetteFormat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CassetteFormatTrait; + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CassetteFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CassetteFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'CassetteFormat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CategoryCode.php b/src/models/jsonld/CategoryCode.php index 19451bbf4..c8d03e8ab 100644 --- a/src/models/jsonld/CategoryCode.php +++ b/src/models/jsonld/CategoryCode.php @@ -23,131 +23,131 @@ */ class CategoryCode extends MetaJsonLd implements CategoryCodeInterface, DefinedTermInterface, IntangibleInterface, ThingInterface { - use CategoryCodeTrait; - use DefinedTermTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CategoryCode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CategoryCode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DefinedTerm'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Category Code.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'codeValue' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inCodeSet' => ['URL', 'CategoryCodeSet'], - 'inDefinedTermSet' => ['DefinedTermSet', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termCode' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'codeValue' => 'A short textual code that uniquely identifies the value.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inCodeSet' => 'A [[CategoryCodeSet]] that contains this category code.', - 'inDefinedTermSet' => 'A [[DefinedTermSet]] that contains this term.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termCode' => 'A code that identifies this [[DefinedTerm]] within a [[DefinedTermSet]]', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CategoryCodeTrait; + use DefinedTermTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CategoryCode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CategoryCode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DefinedTerm'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Category Code.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'codeValue' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inCodeSet' => ['URL', 'CategoryCodeSet'], + 'inDefinedTermSet' => ['DefinedTermSet', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termCode' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'codeValue' => 'A short textual code that uniquely identifies the value.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inCodeSet' => 'A [[CategoryCodeSet]] that contains this category code.', + 'inDefinedTermSet' => 'A [[DefinedTermSet]] that contains this term.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termCode' => 'A code that identifies this [[DefinedTerm]] within a [[DefinedTermSet]]', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CategoryCodeSet.php b/src/models/jsonld/CategoryCodeSet.php index 867bd92c3..df7435d05 100644 --- a/src/models/jsonld/CategoryCodeSet.php +++ b/src/models/jsonld/CategoryCodeSet.php @@ -23,351 +23,351 @@ */ class CategoryCodeSet extends MetaJsonLd implements CategoryCodeSetInterface, DefinedTermSetInterface, CreativeWorkInterface, ThingInterface { - use CategoryCodeSetTrait; - use DefinedTermSetTrait; - use CreativeWorkTrait; - use ThingTrait; + use CategoryCodeSetTrait; + use DefinedTermSetTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CategoryCodeSet'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CategoryCodeSet'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CategoryCodeSet'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CategoryCodeSet'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DefinedTermSet'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DefinedTermSet'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of Category Code values.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of Category Code values.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasCategoryCode' => ['CategoryCode'], - 'hasDefinedTerm' => ['DefinedTerm'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasCategoryCode' => ['CategoryCode'], + 'hasDefinedTerm' => ['DefinedTerm'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasCategoryCode' => 'A Category code contained in this code set.', - 'hasDefinedTerm' => 'A Defined Term contained in this term set.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasCategoryCode' => 'A Category code contained in this code set.', + 'hasDefinedTerm' => 'A Defined Term contained in this term set.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CatholicChurch.php b/src/models/jsonld/CatholicChurch.php index fe95dd3ca..e5c1df902 100644 --- a/src/models/jsonld/CatholicChurch.php +++ b/src/models/jsonld/CatholicChurch.php @@ -23,217 +23,217 @@ */ class CatholicChurch extends MetaJsonLd implements CatholicChurchInterface, ChurchInterface, PlaceOfWorshipInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use CatholicChurchTrait; - use ChurchTrait; - use PlaceOfWorshipTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CatholicChurch'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CatholicChurch'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Church'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Catholic church.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CatholicChurchTrait; + use ChurchTrait; + use PlaceOfWorshipTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CatholicChurch'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CatholicChurch'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Church'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Catholic church.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CausesHealthAspect.php b/src/models/jsonld/CausesHealthAspect.php index 135d37e35..ea9da12a3 100644 --- a/src/models/jsonld/CausesHealthAspect.php +++ b/src/models/jsonld/CausesHealthAspect.php @@ -23,126 +23,126 @@ */ class CausesHealthAspect extends MetaJsonLd implements CausesHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CausesHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CausesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CausesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Information about the causes and main actions that gave rise to the topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CausesHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CausesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CausesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Information about the causes and main actions that gave rise to the topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Cemetery.php b/src/models/jsonld/Cemetery.php index 0b7a1891b..30c435270 100644 --- a/src/models/jsonld/Cemetery.php +++ b/src/models/jsonld/Cemetery.php @@ -23,215 +23,215 @@ */ class Cemetery extends MetaJsonLd implements CemeteryInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use CemeteryTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Cemetery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Cemetery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A graveyard.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CemeteryTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Cemetery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Cemetery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A graveyard.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Chapter.php b/src/models/jsonld/Chapter.php index 5831efa40..43d00afee 100644 --- a/src/models/jsonld/Chapter.php +++ b/src/models/jsonld/Chapter.php @@ -24,352 +24,352 @@ */ class Chapter extends MetaJsonLd implements ChapterInterface, CreativeWorkInterface, ThingInterface { - use ChapterTrait; - use CreativeWorkTrait; - use ThingTrait; + use ChapterTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Chapter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Chapter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Chapter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Chapter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'One of the sections into which a book is divided. A chapter usually has a section number or a name.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'One of the sections into which a book is divided. A chapter usually has a section number or a name.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CharitableIncorporatedOrganization.php b/src/models/jsonld/CharitableIncorporatedOrganization.php index a8a1fa09b..f6a22a09b 100644 --- a/src/models/jsonld/CharitableIncorporatedOrganization.php +++ b/src/models/jsonld/CharitableIncorporatedOrganization.php @@ -24,127 +24,127 @@ */ class CharitableIncorporatedOrganization extends MetaJsonLd implements CharitableIncorporatedOrganizationInterface, UKNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CharitableIncorporatedOrganizationTrait; - use UKNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CharitableIncorporatedOrganization'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CharitableIncorporatedOrganization'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'CharitableIncorporatedOrganization: Non-profit type referring to a Charitable Incorporated Organization (UK).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CharitableIncorporatedOrganizationTrait; + use UKNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CharitableIncorporatedOrganization'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CharitableIncorporatedOrganization'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'CharitableIncorporatedOrganization: Non-profit type referring to a Charitable Incorporated Organization (UK).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CheckAction.php b/src/models/jsonld/CheckAction.php index 8b847e40b..82d9c2a51 100644 --- a/src/models/jsonld/CheckAction.php +++ b/src/models/jsonld/CheckAction.php @@ -24,147 +24,147 @@ */ class CheckAction extends MetaJsonLd implements CheckActionInterface, FindActionInterface, ActionInterface, ThingInterface { - use CheckActionTrait; - use FindActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CheckAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CheckAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FindAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent inspects, determines, investigates, inquires, or examines an object\'s accuracy, quality, condition, or state.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CheckActionTrait; + use FindActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CheckAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CheckAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FindAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent inspects, determines, investigates, inquires, or examines an object\'s accuracy, quality, condition, or state.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CheckInAction.php b/src/models/jsonld/CheckInAction.php index 6629a9891..453b2ee9d 100644 --- a/src/models/jsonld/CheckInAction.php +++ b/src/models/jsonld/CheckInAction.php @@ -31,156 +31,156 @@ */ class CheckInAction extends MetaJsonLd implements CheckInActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use CheckInActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CheckInAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CheckInAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of an agent communicating (service provider, social media, etc) their arrival by registering/confirming for a previously reserved service (e.g. flight check-in) or at a place (e.g. hotel), possibly resulting in a result (boarding pass, etc).\n\nRelated actions:\n\n* [[CheckOutAction]]: The antonym of CheckInAction.\n* [[ArriveAction]]: Unlike ArriveAction, CheckInAction implies that the agent is informing/confirming the start of a previously reserved service.\n* [[ConfirmAction]]: Unlike ConfirmAction, CheckInAction implies that the agent is informing/confirming the *start* of a previously reserved service rather than its validity/existence.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CheckInActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CheckInAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CheckInAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of an agent communicating (service provider, social media, etc) their arrival by registering/confirming for a previously reserved service (e.g. flight check-in) or at a place (e.g. hotel), possibly resulting in a result (boarding pass, etc).\n\nRelated actions:\n\n* [[CheckOutAction]]: The antonym of CheckInAction.\n* [[ArriveAction]]: Unlike ArriveAction, CheckInAction implies that the agent is informing/confirming the start of a previously reserved service.\n* [[ConfirmAction]]: Unlike ConfirmAction, CheckInAction implies that the agent is informing/confirming the *start* of a previously reserved service rather than its validity/existence.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CheckOutAction.php b/src/models/jsonld/CheckOutAction.php index c6e384e68..78e401f13 100644 --- a/src/models/jsonld/CheckOutAction.php +++ b/src/models/jsonld/CheckOutAction.php @@ -30,156 +30,156 @@ */ class CheckOutAction extends MetaJsonLd implements CheckOutActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use CheckOutActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CheckOutAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CheckOutAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of an agent communicating (service provider, social media, etc) their departure of a previously reserved service (e.g. flight check-in) or place (e.g. hotel).\n\nRelated actions:\n\n* [[CheckInAction]]: The antonym of CheckOutAction.\n* [[DepartAction]]: Unlike DepartAction, CheckOutAction implies that the agent is informing/confirming the end of a previously reserved service.\n* [[CancelAction]]: Unlike CancelAction, CheckOutAction implies that the agent is informing/confirming the end of a previously reserved service.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CheckOutActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CheckOutAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CheckOutAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of an agent communicating (service provider, social media, etc) their departure of a previously reserved service (e.g. flight check-in) or place (e.g. hotel).\n\nRelated actions:\n\n* [[CheckInAction]]: The antonym of CheckOutAction.\n* [[DepartAction]]: Unlike DepartAction, CheckOutAction implies that the agent is informing/confirming the end of a previously reserved service.\n* [[CancelAction]]: Unlike CancelAction, CheckOutAction implies that the agent is informing/confirming the end of a previously reserved service.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CheckoutPage.php b/src/models/jsonld/CheckoutPage.php index 9046752f2..68095930e 100644 --- a/src/models/jsonld/CheckoutPage.php +++ b/src/models/jsonld/CheckoutPage.php @@ -23,367 +23,367 @@ */ class CheckoutPage extends MetaJsonLd implements CheckoutPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use CheckoutPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use CheckoutPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CheckoutPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CheckoutPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CheckoutPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CheckoutPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Checkout page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Checkout page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ChemicalSubstance.php b/src/models/jsonld/ChemicalSubstance.php index 9330e15d4..67cd2e9a3 100644 --- a/src/models/jsonld/ChemicalSubstance.php +++ b/src/models/jsonld/ChemicalSubstance.php @@ -26,154 +26,154 @@ */ class ChemicalSubstance extends MetaJsonLd implements ChemicalSubstanceInterface, BioChemEntityInterface, ThingInterface { - use ChemicalSubstanceTrait; - use BioChemEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ChemicalSubstance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ChemicalSubstance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A chemical substance is \'a portion of matter of constant composition, composed of molecular entities of the same type or of different types\' (source: [ChEBI:59999](https://www.ebi.ac.uk/chebi/searchId.do?chebiId=59999)).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], - 'bioChemInteraction' => ['BioChemEntity'], - 'bioChemSimilarity' => ['BioChemEntity'], - 'biologicalRole' => ['DefinedTerm'], - 'chemicalComposition' => ['Text'], - 'chemicalRole' => ['DefinedTerm'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'hasBioChemEntityPart' => ['BioChemEntity'], - 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isEncodedByBioChemEntity' => ['Gene'], - 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], - 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'isPartOfBioChemEntity' => ['BioChemEntity'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'potentialUse' => ['DefinedTerm'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', - 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', - 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', - 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', - 'chemicalComposition' => 'The chemical composition describes the identity and relative ratio of the chemical elements that make up the substance.', - 'chemicalRole' => 'A role played by the BioChemEntity within a chemical context.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', - 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', - 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', - 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', - 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', - 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'potentialUse' => 'Intended use of the BioChemEntity by humans.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ChemicalSubstanceTrait; + use BioChemEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ChemicalSubstance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ChemicalSubstance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A chemical substance is \'a portion of matter of constant composition, composed of molecular entities of the same type or of different types\' (source: [ChEBI:59999](https://www.ebi.ac.uk/chebi/searchId.do?chebiId=59999)).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], + 'bioChemInteraction' => ['BioChemEntity'], + 'bioChemSimilarity' => ['BioChemEntity'], + 'biologicalRole' => ['DefinedTerm'], + 'chemicalComposition' => ['Text'], + 'chemicalRole' => ['DefinedTerm'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'hasBioChemEntityPart' => ['BioChemEntity'], + 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isEncodedByBioChemEntity' => ['Gene'], + 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], + 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'isPartOfBioChemEntity' => ['BioChemEntity'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'potentialUse' => ['DefinedTerm'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', + 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', + 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', + 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', + 'chemicalComposition' => 'The chemical composition describes the identity and relative ratio of the chemical elements that make up the substance.', + 'chemicalRole' => 'A role played by the BioChemEntity within a chemical context.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', + 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', + 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', + 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', + 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', + 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'potentialUse' => 'Intended use of the BioChemEntity by humans.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ChildCare.php b/src/models/jsonld/ChildCare.php index 1ad3f5fa9..f3c2a0217 100644 --- a/src/models/jsonld/ChildCare.php +++ b/src/models/jsonld/ChildCare.php @@ -23,330 +23,330 @@ */ class ChildCare extends MetaJsonLd implements ChildCareInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ChildCareTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ChildCareTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ChildCare'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ChildCare'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ChildCare'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ChildCare'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Childcare center.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Childcare center.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ChildrensEvent.php b/src/models/jsonld/ChildrensEvent.php index 21fb42ba4..a02cf9f94 100644 --- a/src/models/jsonld/ChildrensEvent.php +++ b/src/models/jsonld/ChildrensEvent.php @@ -23,204 +23,204 @@ */ class ChildrensEvent extends MetaJsonLd implements ChildrensEventInterface, EventInterface, ThingInterface { - use ChildrensEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ChildrensEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ChildrensEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Children\'s event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ChildrensEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ChildrensEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ChildrensEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Children\'s event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Chiropractic.php b/src/models/jsonld/Chiropractic.php index 9c1adcf72..71f4753bd 100644 --- a/src/models/jsonld/Chiropractic.php +++ b/src/models/jsonld/Chiropractic.php @@ -24,127 +24,127 @@ */ class Chiropractic extends MetaJsonLd implements ChiropracticInterface, MedicineSystemInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ChiropracticTrait; - use MedicineSystemTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Chiropractic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Chiropractic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A system of medicine focused on the relationship between the body\'s structure, mainly the spine, and its functioning.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ChiropracticTrait; + use MedicineSystemTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Chiropractic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Chiropractic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A system of medicine focused on the relationship between the body\'s structure, mainly the spine, and its functioning.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ChooseAction.php b/src/models/jsonld/ChooseAction.php index 60c71a497..36f74698a 100644 --- a/src/models/jsonld/ChooseAction.php +++ b/src/models/jsonld/ChooseAction.php @@ -24,151 +24,151 @@ */ class ChooseAction extends MetaJsonLd implements ChooseActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use ChooseActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ChooseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ChooseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of expressing a preference from a set of options or a large or unbounded set of choices/options.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionOption' => ['Text', 'Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'option' => ['Text', 'Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionOption' => 'A sub property of object. The options subject to this action.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'option' => 'A sub property of object. The options subject to this action.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ChooseActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ChooseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ChooseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of expressing a preference from a set of options or a large or unbounded set of choices/options.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionOption' => ['Text', 'Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'option' => ['Text', 'Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionOption' => 'A sub property of object. The options subject to this action.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'option' => 'A sub property of object. The options subject to this action.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Church.php b/src/models/jsonld/Church.php index 61b8268d1..504aac6dc 100644 --- a/src/models/jsonld/Church.php +++ b/src/models/jsonld/Church.php @@ -23,216 +23,216 @@ */ class Church extends MetaJsonLd implements ChurchInterface, PlaceOfWorshipInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use ChurchTrait; - use PlaceOfWorshipTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Church'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Church'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A church.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ChurchTrait; + use PlaceOfWorshipTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Church'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Church'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A church.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/City.php b/src/models/jsonld/City.php index cdcfcf62e..33b24b52a 100644 --- a/src/models/jsonld/City.php +++ b/src/models/jsonld/City.php @@ -23,213 +23,213 @@ */ class City extends MetaJsonLd implements CityInterface, AdministrativeAreaInterface, PlaceInterface, ThingInterface { - use CityTrait; - use AdministrativeAreaTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'City'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/City'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A city or town.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CityTrait; + use AdministrativeAreaTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'City'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/City'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A city or town.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CityHall.php b/src/models/jsonld/CityHall.php index 85ca6d391..a0d5524b6 100644 --- a/src/models/jsonld/CityHall.php +++ b/src/models/jsonld/CityHall.php @@ -23,216 +23,216 @@ */ class CityHall extends MetaJsonLd implements CityHallInterface, GovernmentBuildingInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use CityHallTrait; - use GovernmentBuildingTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CityHall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CityHall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A city hall.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CityHallTrait; + use GovernmentBuildingTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CityHall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CityHall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A city hall.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CivicStructure.php b/src/models/jsonld/CivicStructure.php index 7f9311f91..20eeadd2e 100644 --- a/src/models/jsonld/CivicStructure.php +++ b/src/models/jsonld/CivicStructure.php @@ -23,214 +23,214 @@ */ class CivicStructure extends MetaJsonLd implements CivicStructureInterface, PlaceInterface, ThingInterface { - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CivicStructure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CivicStructure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A public structure, such as a town hall or concert hall.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CivicStructure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CivicStructure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A public structure, such as a town hall or concert hall.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Claim.php b/src/models/jsonld/Claim.php index 6e0e4fffd..9f5fee8a5 100644 --- a/src/models/jsonld/Claim.php +++ b/src/models/jsonld/Claim.php @@ -35,352 +35,352 @@ */ class Claim extends MetaJsonLd implements ClaimInterface, CreativeWorkInterface, ThingInterface { - use ClaimTrait; - use CreativeWorkTrait; - use ThingTrait; + use ClaimTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Claim'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Claim'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Claim'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Claim'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A [[Claim]] in Schema.org represents a specific, factually-oriented claim that could be the [[itemReviewed]] in a [[ClaimReview]]. The content of a claim can be summarized with the [[text]] property. Variations on well known claims can have their common identity indicated via [[sameAs]] links, and summarized with a [[name]]. Ideally, a [[Claim]] description includes enough contextual information to minimize the risk of ambiguity or inclarity. In practice, many claims are better understood in the context in which they appear or the interpretations provided by claim reviews.\n\n Beyond [[ClaimReview]], the Claim type can be associated with related creative works - for example a [[ScholarlyArticle]] or [[Question]] might be [[about]] some [[Claim]].\n\n At this time, Schema.org does not define any types of relationship between claims. This is a natural area for future exploration.\n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A [[Claim]] in Schema.org represents a specific, factually-oriented claim that could be the [[itemReviewed]] in a [[ClaimReview]]. The content of a claim can be summarized with the [[text]] property. Variations on well known claims can have their common identity indicated via [[sameAs]] links, and summarized with a [[name]]. Ideally, a [[Claim]] description includes enough contextual information to minimize the risk of ambiguity or inclarity. In practice, many claims are better understood in the context in which they appear or the interpretations provided by claim reviews.\n\n Beyond [[ClaimReview]], the Claim type can be associated with related creative works - for example a [[ScholarlyArticle]] or [[Question]] might be [[about]] some [[Claim]].\n\n At this time, Schema.org does not define any types of relationship between claims. This is a natural area for future exploration.\n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'appearance' => ['CreativeWork'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'claimInterpreter' => ['Organization', 'Person'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'firstAppearance' => ['CreativeWork'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'appearance' => ['CreativeWork'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'claimInterpreter' => ['Organization', 'Person'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'firstAppearance' => ['CreativeWork'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'appearance' => 'Indicates an occurrence of a [[Claim]] in some [[CreativeWork]].', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'claimInterpreter' => 'For a [[Claim]] interpreted from [[MediaObject]] content sed to indicate a claim contained, implied or refined from the content of a [[MediaObject]].', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'firstAppearance' => 'Indicates the first known occurrence of a [[Claim]] in some [[CreativeWork]].', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'appearance' => 'Indicates an occurrence of a [[Claim]] in some [[CreativeWork]].', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'claimInterpreter' => 'For a [[Claim]] interpreted from [[MediaObject]] content sed to indicate a claim contained, implied or refined from the content of a [[MediaObject]].', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'firstAppearance' => 'Indicates the first known occurrence of a [[Claim]] in some [[CreativeWork]].', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ClaimReview.php b/src/models/jsonld/ClaimReview.php index da06e709b..ab0778e7e 100644 --- a/src/models/jsonld/ClaimReview.php +++ b/src/models/jsonld/ClaimReview.php @@ -24,367 +24,367 @@ */ class ClaimReview extends MetaJsonLd implements ClaimReviewInterface, ReviewInterface, CreativeWorkInterface, ThingInterface { - use ClaimReviewTrait; - use ReviewTrait; - use CreativeWorkTrait; - use ThingTrait; + use ClaimReviewTrait; + use ReviewTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ClaimReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ClaimReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ClaimReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ClaimReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A fact-checking review of claims made (or reported) in some creative work (referenced via itemReviewed).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A fact-checking review of claims made (or reported) in some creative work (referenced via itemReviewed).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'claimReviewed' => ['Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'claimReviewed' => ['Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'claimReviewed' => 'A short summary of the specific claims reviewed in a ClaimReview.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'claimReviewed' => 'A short summary of the specific claims reviewed in a ClaimReview.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CleaningFee.php b/src/models/jsonld/CleaningFee.php index cd3f79ad3..bdddef78f 100644 --- a/src/models/jsonld/CleaningFee.php +++ b/src/models/jsonld/CleaningFee.php @@ -24,126 +24,126 @@ */ class CleaningFee extends MetaJsonLd implements CleaningFeeInterface, PriceComponentTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CleaningFeeTrait; - use PriceComponentTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CleaningFee'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CleaningFee'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the cleaning fee part of the total price for an offered product, for example a vacation rental.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CleaningFeeTrait; + use PriceComponentTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CleaningFee'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CleaningFee'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the cleaning fee part of the total price for an offered product, for example a vacation rental.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Clinician.php b/src/models/jsonld/Clinician.php index 2e06f76f4..352aad74e 100644 --- a/src/models/jsonld/Clinician.php +++ b/src/models/jsonld/Clinician.php @@ -24,127 +24,127 @@ */ class Clinician extends MetaJsonLd implements ClinicianInterface, MedicalAudienceTypeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ClinicianTrait; - use MedicalAudienceTypeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Clinician'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Clinician'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalAudienceType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Medical clinicians, including practicing physicians and other medical professionals involved in clinical practice.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ClinicianTrait; + use MedicalAudienceTypeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Clinician'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Clinician'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalAudienceType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Medical clinicians, including practicing physicians and other medical professionals involved in clinical practice.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Clip.php b/src/models/jsonld/Clip.php index 9d5f2e5a6..29f2983c6 100644 --- a/src/models/jsonld/Clip.php +++ b/src/models/jsonld/Clip.php @@ -23,368 +23,368 @@ */ class Clip extends MetaJsonLd implements ClipInterface, CreativeWorkInterface, ThingInterface { - use ClipTrait; - use CreativeWorkTrait; - use ThingTrait; + use ClipTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Clip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Clip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Clip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Clip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A short TV or radio program or a segment/part of a program.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A short TV or radio program or a segment/part of a program.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'clipNumber' => ['Integer', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endOffset' => ['Number', 'HyperTocEntry'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfEpisode' => ['Episode'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startOffset' => ['Number', 'HyperTocEntry'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'clipNumber' => ['Integer', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endOffset' => ['Number', 'HyperTocEntry'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfEpisode' => ['Episode'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startOffset' => ['Number', 'HyperTocEntry'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'clipNumber' => 'Position of the clip within an ordered group of clips.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfEpisode' => 'The episode to which this clip belongs.', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'clipNumber' => 'Position of the clip within an ordered group of clips.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfEpisode' => 'The episode to which this clip belongs.', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ClothingStore.php b/src/models/jsonld/ClothingStore.php index 72a25263f..6982fd198 100644 --- a/src/models/jsonld/ClothingStore.php +++ b/src/models/jsonld/ClothingStore.php @@ -23,331 +23,331 @@ */ class ClothingStore extends MetaJsonLd implements ClothingStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ClothingStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ClothingStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ClothingStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ClothingStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ClothingStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ClothingStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A clothing store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A clothing store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CoOp.php b/src/models/jsonld/CoOp.php index 1e323cc5d..88bdb20be 100644 --- a/src/models/jsonld/CoOp.php +++ b/src/models/jsonld/CoOp.php @@ -24,126 +24,126 @@ */ class CoOp extends MetaJsonLd implements CoOpInterface, GamePlayModeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CoOpTrait; - use GamePlayModeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CoOp'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CoOp'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GamePlayMode'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Play mode: CoOp. Co-operative games, where you play on the same team with friends.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CoOpTrait; + use GamePlayModeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CoOp'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CoOp'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GamePlayMode'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Play mode: CoOp. Co-operative games, where you play on the same team with friends.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Code.php b/src/models/jsonld/Code.php index c37f5b35a..78e345d49 100644 --- a/src/models/jsonld/Code.php +++ b/src/models/jsonld/Code.php @@ -24,346 +24,346 @@ */ class Code extends MetaJsonLd implements CodeInterface, CreativeWorkInterface, ThingInterface { - use CodeTrait; - use CreativeWorkTrait; - use ThingTrait; + use CodeTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Code'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Code'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Code'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Code'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CohortStudy.php b/src/models/jsonld/CohortStudy.php index 9f11425fe..aa54b4cec 100644 --- a/src/models/jsonld/CohortStudy.php +++ b/src/models/jsonld/CohortStudy.php @@ -32,127 +32,127 @@ */ class CohortStudy extends MetaJsonLd implements CohortStudyInterface, MedicalObservationalStudyDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CohortStudyTrait; - use MedicalObservationalStudyDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CohortStudy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CohortStudy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Also known as a panel study. A cohort study is a form of longitudinal study used in medicine and social science. It is one type of study design and should be compared with a cross-sectional study. A cohort is a group of people who share a common characteristic or experience within a defined period (e.g., are born, leave school, lose their job, are exposed to a drug or a vaccine, etc.). The comparison group may be the general population from which the cohort is drawn, or it may be another cohort of persons thought to have had little or no exposure to the substance under investigation, but otherwise similar. Alternatively, subgroups within the cohort may be compared with each other.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CohortStudyTrait; + use MedicalObservationalStudyDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CohortStudy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CohortStudy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Also known as a panel study. A cohort study is a form of longitudinal study used in medicine and social science. It is one type of study design and should be compared with a cross-sectional study. A cohort is a group of people who share a common characteristic or experience within a defined period (e.g., are born, leave school, lose their job, are exposed to a drug or a vaccine, etc.). The comparison group may be the general population from which the cohort is drawn, or it may be another cohort of persons thought to have had little or no exposure to the substance under investigation, but otherwise similar. Alternatively, subgroups within the cohort may be compared with each other.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Collection.php b/src/models/jsonld/Collection.php index 35e759bcf..24753a25d 100644 --- a/src/models/jsonld/Collection.php +++ b/src/models/jsonld/Collection.php @@ -23,348 +23,348 @@ */ class Collection extends MetaJsonLd implements CollectionInterface, CreativeWorkInterface, ThingInterface { - use CollectionTrait; - use CreativeWorkTrait; - use ThingTrait; + use CollectionTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Collection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Collection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Collection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Collection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A collection of items, e.g. creative works or products.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A collection of items, e.g. creative works or products.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'collectionSize' => ['Integer'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'collectionSize' => ['Integer'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'collectionSize' => 'The number of items in the [[Collection]].', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'collectionSize' => 'The number of items in the [[Collection]].', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CollectionPage.php b/src/models/jsonld/CollectionPage.php index 5bdaa7e61..c9211ce0e 100644 --- a/src/models/jsonld/CollectionPage.php +++ b/src/models/jsonld/CollectionPage.php @@ -23,367 +23,367 @@ */ class CollectionPage extends MetaJsonLd implements CollectionPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use CollectionPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use CollectionPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CollectionPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CollectionPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CollectionPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CollectionPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Collection page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Collection page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CollegeOrUniversity.php b/src/models/jsonld/CollegeOrUniversity.php index 54b0d589f..03cb03bb0 100644 --- a/src/models/jsonld/CollegeOrUniversity.php +++ b/src/models/jsonld/CollegeOrUniversity.php @@ -23,323 +23,323 @@ */ class CollegeOrUniversity extends MetaJsonLd implements CollegeOrUniversityInterface, EducationalOrganizationInterface, CivicStructureInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use CollegeOrUniversityTrait; - use EducationalOrganizationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use CollegeOrUniversityTrait; + use EducationalOrganizationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CollegeOrUniversity'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CollegeOrUniversity'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CollegeOrUniversity'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CollegeOrUniversity'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A college, university, or other third-level educational institution.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A college, university, or other third-level educational institution.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ComedyClub.php b/src/models/jsonld/ComedyClub.php index 081124d66..da5c2ae24 100644 --- a/src/models/jsonld/ComedyClub.php +++ b/src/models/jsonld/ComedyClub.php @@ -23,331 +23,331 @@ */ class ComedyClub extends MetaJsonLd implements ComedyClubInterface, EntertainmentBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ComedyClubTrait; - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ComedyClubTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComedyClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComedyClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComedyClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComedyClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A comedy club.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A comedy club.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ComedyEvent.php b/src/models/jsonld/ComedyEvent.php index 1989c56a3..d8b7964af 100644 --- a/src/models/jsonld/ComedyEvent.php +++ b/src/models/jsonld/ComedyEvent.php @@ -23,204 +23,204 @@ */ class ComedyEvent extends MetaJsonLd implements ComedyEventInterface, EventInterface, ThingInterface { - use ComedyEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComedyEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComedyEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Comedy event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ComedyEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComedyEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComedyEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Comedy event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ComicCoverArt.php b/src/models/jsonld/ComicCoverArt.php index f0fd40426..ac3316326 100644 --- a/src/models/jsonld/ComicCoverArt.php +++ b/src/models/jsonld/ComicCoverArt.php @@ -23,375 +23,375 @@ */ class ComicCoverArt extends MetaJsonLd implements ComicCoverArtInterface, ComicStoryInterface, CreativeWorkInterface, ThingInterface, CoverArtInterface, VisualArtworkInterface { - use ComicCoverArtTrait; - use ComicStoryTrait; - use CreativeWorkTrait; - use ThingTrait; - use CoverArtTrait; - use VisualArtworkTrait; + use ComicCoverArtTrait; + use ComicStoryTrait; + use CreativeWorkTrait; + use ThingTrait; + use CoverArtTrait; + use VisualArtworkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComicCoverArt'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComicCoverArt'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComicCoverArt'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComicCoverArt'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ComicStory'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ComicStory'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The artwork on the cover of a comic.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The artwork on the cover of a comic.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'artEdition' => ['Integer', 'Text'], - 'artMedium' => ['URL', 'Text'], - 'artform' => ['URL', 'Text'], - 'artist' => ['Person'], - 'artworkSurface' => ['URL', 'Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'colorist' => ['Person'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'inker' => ['Person'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'letterer' => ['Person'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'penciler' => ['Person'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'surface' => ['Text', 'URL'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'artEdition' => ['Integer', 'Text'], + 'artMedium' => ['URL', 'Text'], + 'artform' => ['URL', 'Text'], + 'artist' => ['Person'], + 'artworkSurface' => ['URL', 'Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'colorist' => ['Person'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'inker' => ['Person'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'letterer' => ['Person'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'penciler' => ['Person'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'surface' => ['Text', 'URL'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'artEdition' => 'The number of copies when multiple copies of a piece of artwork are produced - e.g. for a limited edition of 20 prints, \'artEdition\' refers to the total number of copies (in this example "20").', - 'artMedium' => 'The material used. (E.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)', - 'artform' => 'e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.', - 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', - 'artworkSurface' => 'The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'colorist' => 'The individual who adds color to inked drawings.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'penciler' => 'The individual who draws the primary narrative artwork.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'surface' => 'A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'artEdition' => 'The number of copies when multiple copies of a piece of artwork are produced - e.g. for a limited edition of 20 prints, \'artEdition\' refers to the total number of copies (in this example "20").', + 'artMedium' => 'The material used. (E.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)', + 'artform' => 'e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.', + 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', + 'artworkSurface' => 'The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'colorist' => 'The individual who adds color to inked drawings.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'penciler' => 'The individual who draws the primary narrative artwork.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'surface' => 'A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ComicIssue.php b/src/models/jsonld/ComicIssue.php index d1c798722..a17240bdd 100644 --- a/src/models/jsonld/ComicIssue.php +++ b/src/models/jsonld/ComicIssue.php @@ -28,367 +28,367 @@ */ class ComicIssue extends MetaJsonLd implements ComicIssueInterface, PublicationIssueInterface, CreativeWorkInterface, ThingInterface { - use ComicIssueTrait; - use PublicationIssueTrait; - use CreativeWorkTrait; - use ThingTrait; + use ComicIssueTrait; + use PublicationIssueTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComicIssue'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComicIssue'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComicIssue'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComicIssue'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PublicationIssue'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PublicationIssue'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Individual comic issues are serially published as\n \tpart of a larger series. For the sake of consistency, even one-shot issues\n \tbelong to a series comprised of a single issue. All comic issues can be\n \tuniquely identified by: the combination of the name and volume number of the\n \tseries to which the issue belongs; the issue number; and the variant\n \tdescription of the issue (if any)."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Individual comic issues are serially published as\n \tpart of a larger series. For the sake of consistency, even one-shot issues\n \tbelong to a series comprised of a single issue. All comic issues can be\n \tuniquely identified by: the combination of the name and volume number of the\n \tseries to which the issue belongs; the issue number; and the variant\n \tdescription of the issue (if any)."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'artist' => ['Person'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'colorist' => ['Person'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'inker' => ['Person'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issueNumber' => ['Integer', 'Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'letterer' => ['Person'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'penciler' => ['Person'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'variantCover' => ['Text'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'artist' => ['Person'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'colorist' => ['Person'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'inker' => ['Person'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issueNumber' => ['Integer', 'Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'letterer' => ['Person'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'penciler' => ['Person'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'variantCover' => ['Text'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'colorist' => 'The individual who adds color to inked drawings.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issueNumber' => 'Identifies the issue of publication; for example, "iii" or "2".', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'penciler' => 'The individual who draws the primary narrative artwork.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'variantCover' => 'A description of the variant cover for the issue, if the issue is a variant printing. For example, "Bryan Hitch Variant Cover" or "2nd Printing Variant".', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'colorist' => 'The individual who adds color to inked drawings.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issueNumber' => 'Identifies the issue of publication; for example, "iii" or "2".', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'penciler' => 'The individual who draws the primary narrative artwork.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'variantCover' => 'A description of the variant cover for the issue, if the issue is a variant printing. For example, "Bryan Hitch Variant Cover" or "2nd Printing Variant".', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ComicSeries.php b/src/models/jsonld/ComicSeries.php index e98263ab7..c0df1fb95 100644 --- a/src/models/jsonld/ComicSeries.php +++ b/src/models/jsonld/ComicSeries.php @@ -24,356 +24,356 @@ */ class ComicSeries extends MetaJsonLd implements ComicSeriesInterface, PeriodicalInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use ComicSeriesTrait; - use PeriodicalTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use ComicSeriesTrait; + use PeriodicalTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComicSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComicSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComicSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComicSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Periodical'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Periodical'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A sequential publication of comic stories under a\n \tunifying title, for example \"The Amazing Spider-Man\" or \"Groo the\n \tWanderer\"."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A sequential publication of comic stories under a\n \tunifying title, for example \"The Amazing Spider-Man\" or \"Groo the\n \tWanderer\"."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ComicStory.php b/src/models/jsonld/ComicStory.php index 5c0dad812..da15c163d 100644 --- a/src/models/jsonld/ComicStory.php +++ b/src/models/jsonld/ComicStory.php @@ -25,356 +25,356 @@ */ class ComicStory extends MetaJsonLd implements ComicStoryInterface, CreativeWorkInterface, ThingInterface { - use ComicStoryTrait; - use CreativeWorkTrait; - use ThingTrait; + use ComicStoryTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComicStory'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComicStory'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComicStory'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComicStory'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "The term \"story\" is any indivisible, re-printable\n \tunit of a comic, including the interior stories, covers, and backmatter. Most\n \tcomics have at least two stories: a cover (ComicCoverArt) and an interior story."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "The term \"story\" is any indivisible, re-printable\n \tunit of a comic, including the interior stories, covers, and backmatter. Most\n \tcomics have at least two stories: a cover (ComicCoverArt) and an interior story."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'artist' => ['Person'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'colorist' => ['Person'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'inker' => ['Person'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'letterer' => ['Person'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'penciler' => ['Person'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'artist' => ['Person'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'colorist' => ['Person'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'inker' => ['Person'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'letterer' => ['Person'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'penciler' => ['Person'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'colorist' => 'The individual who adds color to inked drawings.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'penciler' => 'The individual who draws the primary narrative artwork.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'colorist' => 'The individual who adds color to inked drawings.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'penciler' => 'The individual who draws the primary narrative artwork.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Comment.php b/src/models/jsonld/Comment.php index 6ff9af8f7..10b2dd885 100644 --- a/src/models/jsonld/Comment.php +++ b/src/models/jsonld/Comment.php @@ -25,352 +25,352 @@ */ class Comment extends MetaJsonLd implements CommentInterface, CreativeWorkInterface, ThingInterface { - use CommentTrait; - use CreativeWorkTrait; - use ThingTrait; + use CommentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Comment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Comment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Comment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Comment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A comment on an item - for example, a comment on a blog post. The comment\'s content is expressed via the [[text]] property, and its topic via [[about]], properties shared with all CreativeWorks.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A comment on an item - for example, a comment on a blog post. The comment\'s content is expressed via the [[text]] property, and its topic via [[about]], properties shared with all CreativeWorks.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downvoteCount' => ['Integer'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'parentItem' => ['Comment'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'upvoteCount' => ['Integer'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downvoteCount' => ['Integer'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'parentItem' => ['Comment'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'upvoteCount' => ['Integer'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'parentItem' => 'The parent of a question, answer or item in general.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'parentItem' => 'The parent of a question, answer or item in general.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CommentAction.php b/src/models/jsonld/CommentAction.php index 3cefdd02f..94efb3c7c 100644 --- a/src/models/jsonld/CommentAction.php +++ b/src/models/jsonld/CommentAction.php @@ -23,158 +23,158 @@ */ class CommentAction extends MetaJsonLd implements CommentActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use CommentActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CommentAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CommentAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of generating a comment about a subject.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'resultComment' => ['Comment'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - 'resultComment' => 'A sub property of result. The Comment created or sent as a result of this action.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CommentActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CommentAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CommentAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of generating a comment about a subject.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'resultComment' => ['Comment'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + 'resultComment' => 'A sub property of result. The Comment created or sent as a result of this action.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CommentPermission.php b/src/models/jsonld/CommentPermission.php index e72cae45e..96285961d 100644 --- a/src/models/jsonld/CommentPermission.php +++ b/src/models/jsonld/CommentPermission.php @@ -23,126 +23,126 @@ */ class CommentPermission extends MetaJsonLd implements CommentPermissionInterface, DigitalDocumentPermissionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CommentPermissionTrait; - use DigitalDocumentPermissionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CommentPermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CommentPermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Permission to add comments to the document.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CommentPermissionTrait; + use DigitalDocumentPermissionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CommentPermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CommentPermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Permission to add comments to the document.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CommunicateAction.php b/src/models/jsonld/CommunicateAction.php index 4fd80eca7..f2333ddbc 100644 --- a/src/models/jsonld/CommunicateAction.php +++ b/src/models/jsonld/CommunicateAction.php @@ -24,155 +24,155 @@ */ class CommunicateAction extends MetaJsonLd implements CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CommunicateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CommunicateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CommunicateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CommunicateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CommunityHealth.php b/src/models/jsonld/CommunityHealth.php index b0c643e33..7b6d2c929 100644 --- a/src/models/jsonld/CommunityHealth.php +++ b/src/models/jsonld/CommunityHealth.php @@ -25,338 +25,338 @@ */ class CommunityHealth extends MetaJsonLd implements CommunityHealthInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use CommunityHealthTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use CommunityHealthTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CommunityHealth'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CommunityHealth'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CommunityHealth'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CommunityHealth'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A field of public health focusing on improving health characteristics of a defined population in relation with their geographical or environment areas.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A field of public health focusing on improving health characteristics of a defined population in relation with their geographical or environment areas.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CompilationAlbum.php b/src/models/jsonld/CompilationAlbum.php index 777099f03..25c542c4d 100644 --- a/src/models/jsonld/CompilationAlbum.php +++ b/src/models/jsonld/CompilationAlbum.php @@ -23,126 +23,126 @@ */ class CompilationAlbum extends MetaJsonLd implements CompilationAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CompilationAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CompilationAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CompilationAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'CompilationAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CompilationAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CompilationAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CompilationAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'CompilationAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CompleteDataFeed.php b/src/models/jsonld/CompleteDataFeed.php index 1bbe3b70d..a218673ef 100644 --- a/src/models/jsonld/CompleteDataFeed.php +++ b/src/models/jsonld/CompleteDataFeed.php @@ -32,366 +32,366 @@ */ class CompleteDataFeed extends MetaJsonLd implements CompleteDataFeedInterface, DataFeedInterface, DatasetInterface, CreativeWorkInterface, ThingInterface { - use CompleteDataFeedTrait; - use DataFeedTrait; - use DatasetTrait; - use CreativeWorkTrait; - use ThingTrait; + use CompleteDataFeedTrait; + use DataFeedTrait; + use DatasetTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CompleteDataFeed'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CompleteDataFeed'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CompleteDataFeed'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CompleteDataFeed'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DataFeed'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DataFeed'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A [[CompleteDataFeed]] is a [[DataFeed]] whose standard representation includes content for every item currently in the feed.\n\nThis is the equivalent of Atom's element as defined in Feed Paging and Archiving [RFC 5005](https://tools.ietf.org/html/rfc5005), for example (and as defined for Atom), when using data from a feed that represents a collection of items that varies over time (e.g. \"Top Twenty Records\") there is no need to have newer entries mixed in alongside older, obsolete entries. By marking this feed as a CompleteDataFeed, old entries can be safely discarded when the feed is refreshed, since we can assume the feed has provided descriptions for all current items."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A [[CompleteDataFeed]] is a [[DataFeed]] whose standard representation includes content for every item currently in the feed.\n\nThis is the equivalent of Atom's element as defined in Feed Paging and Archiving [RFC 5005](https://tools.ietf.org/html/rfc5005), for example (and as defined for Atom), when using data from a feed that represents a collection of items that varies over time (e.g. \"Top Twenty Records\") there is no need to have newer entries mixed in alongside older, obsolete entries. By marking this feed as a CompleteDataFeed, old entries can be safely discarded when the feed is refreshed, since we can assume the feed has provided descriptions for all current items."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'catalog' => ['DataCatalog'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dataFeedElement' => ['Text', 'Thing', 'DataFeedItem'], - 'datasetTimeInterval' => ['DateTime'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'distribution' => ['DataDownload'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'includedDataCatalog' => ['DataCatalog'], - 'includedInDataCatalog' => ['DataCatalog'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'measurementTechnique' => ['URL', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'variableMeasured' => ['Text', 'PropertyValue'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'catalog' => ['DataCatalog'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dataFeedElement' => ['Text', 'Thing', 'DataFeedItem'], + 'datasetTimeInterval' => ['DateTime'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'distribution' => ['DataDownload'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'includedDataCatalog' => ['DataCatalog'], + 'includedInDataCatalog' => ['DataCatalog'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'measurementTechnique' => ['URL', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'variableMeasured' => ['Text', 'PropertyValue'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'catalog' => 'A data catalog which contains this dataset.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dataFeedElement' => 'An item within a data feed. Data feeds may have many elements.', - 'datasetTimeInterval' => 'The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'distribution' => 'A downloadable form of this dataset, at a specific location, in a specific format. This property can be repeated if different variations are available. There is no expectation that different downloadable distributions must contain exactly equivalent information (see also [DCAT](https://www.w3.org/TR/vocab-dcat-3/#Class:Distribution) on this point). Different distributions might include or exclude different subsets of the entire dataset, for example.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'includedDataCatalog' => 'A data catalog which contains this dataset (this property was previously \'catalog\', preferred name is now \'includedInDataCatalog\').', - 'includedInDataCatalog' => 'A data catalog which contains this dataset.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'variableMeasured' => 'The variableMeasured property can indicate (repeated as necessary) the variables that are measured in some dataset, either described as text or as pairs of identifier and description using PropertyValue.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'catalog' => 'A data catalog which contains this dataset.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dataFeedElement' => 'An item within a data feed. Data feeds may have many elements.', + 'datasetTimeInterval' => 'The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'distribution' => 'A downloadable form of this dataset, at a specific location, in a specific format. This property can be repeated if different variations are available. There is no expectation that different downloadable distributions must contain exactly equivalent information (see also [DCAT](https://www.w3.org/TR/vocab-dcat-3/#Class:Distribution) on this point). Different distributions might include or exclude different subsets of the entire dataset, for example.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'includedDataCatalog' => 'A data catalog which contains this dataset (this property was previously \'catalog\', preferred name is now \'includedInDataCatalog\').', + 'includedInDataCatalog' => 'A data catalog which contains this dataset.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'variableMeasured' => 'The variableMeasured property can indicate (repeated as necessary) the variables that are measured in some dataset, either described as text or as pairs of identifier and description using PropertyValue.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Completed.php b/src/models/jsonld/Completed.php index 954c87f7e..b5c5ca597 100644 --- a/src/models/jsonld/Completed.php +++ b/src/models/jsonld/Completed.php @@ -23,127 +23,127 @@ */ class Completed extends MetaJsonLd implements CompletedInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CompletedTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Completed'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Completed'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Completed.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CompletedTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Completed'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Completed'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Completed.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CompletedActionStatus.php b/src/models/jsonld/CompletedActionStatus.php index 9e2f2f783..18ca5631f 100644 --- a/src/models/jsonld/CompletedActionStatus.php +++ b/src/models/jsonld/CompletedActionStatus.php @@ -23,127 +23,127 @@ */ class CompletedActionStatus extends MetaJsonLd implements CompletedActionStatusInterface, ActionStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CompletedActionStatusTrait; - use ActionStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CompletedActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CompletedActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An action that has already taken place.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CompletedActionStatusTrait; + use ActionStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CompletedActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CompletedActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An action that has already taken place.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CompoundPriceSpecification.php b/src/models/jsonld/CompoundPriceSpecification.php index 9483bfae1..4e7a553e1 100644 --- a/src/models/jsonld/CompoundPriceSpecification.php +++ b/src/models/jsonld/CompoundPriceSpecification.php @@ -26,146 +26,146 @@ */ class CompoundPriceSpecification extends MetaJsonLd implements CompoundPriceSpecificationInterface, PriceSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use CompoundPriceSpecificationTrait; - use PriceSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CompoundPriceSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CompoundPriceSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A compound price specification is one that bundles multiple prices that all apply in combination for different dimensions of consumption. Use the name property of the attached unit price specification for indicating the dimension of a price component (e.g. "electricity" or "final cleaning").'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxPrice' => ['Number'], - 'minPrice' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceComponent' => ['UnitPriceSpecification'], - 'priceCurrency' => ['Text'], - 'priceType' => ['Text', 'PriceTypeEnumeration'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'valueAddedTaxIncluded' => ['Boolean'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxPrice' => 'The highest price if the price is a range.', - 'minPrice' => 'The lowest price if the price is a range.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceComponent' => 'This property links to all [[UnitPriceSpecification]] nodes that apply in parallel for the [[CompoundPriceSpecification]] node.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceType' => 'Defines the type of a price specified for an offered product, for example a list price, a (temporary) sale price or a manufacturer suggested retail price. If multiple prices are specified for an offer the [[priceType]] property can be used to identify the type of each such specified price. The value of priceType can be specified as a value from enumeration PriceTypeEnumeration or as a free form text string for price types that are not already predefined in PriceTypeEnumeration.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CompoundPriceSpecificationTrait; + use PriceSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CompoundPriceSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CompoundPriceSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A compound price specification is one that bundles multiple prices that all apply in combination for different dimensions of consumption. Use the name property of the attached unit price specification for indicating the dimension of a price component (e.g. "electricity" or "final cleaning").'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxPrice' => ['Number'], + 'minPrice' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceComponent' => ['UnitPriceSpecification'], + 'priceCurrency' => ['Text'], + 'priceType' => ['Text', 'PriceTypeEnumeration'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'valueAddedTaxIncluded' => ['Boolean'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxPrice' => 'The highest price if the price is a range.', + 'minPrice' => 'The lowest price if the price is a range.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceComponent' => 'This property links to all [[UnitPriceSpecification]] nodes that apply in parallel for the [[CompoundPriceSpecification]] node.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceType' => 'Defines the type of a price specified for an offered product, for example a list price, a (temporary) sale price or a manufacturer suggested retail price. If multiple prices are specified for an offer the [[priceType]] property can be used to identify the type of each such specified price. The value of priceType can be specified as a value from enumeration PriceTypeEnumeration or as a free form text string for price types that are not already predefined in PriceTypeEnumeration.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ComputerLanguage.php b/src/models/jsonld/ComputerLanguage.php index b2f96c143..4bfc03d54 100644 --- a/src/models/jsonld/ComputerLanguage.php +++ b/src/models/jsonld/ComputerLanguage.php @@ -25,122 +25,122 @@ */ class ComputerLanguage extends MetaJsonLd implements ComputerLanguageInterface, IntangibleInterface, ThingInterface { - use ComputerLanguageTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComputerLanguage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComputerLanguage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'This type covers computer programming languages such as Scheme and Lisp, as well as other language-like computer representations. Natural languages are best represented with the [[Language]] type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ComputerLanguageTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComputerLanguage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComputerLanguage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'This type covers computer programming languages such as Scheme and Lisp, as well as other language-like computer representations. Natural languages are best represented with the [[Language]] type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ComputerStore.php b/src/models/jsonld/ComputerStore.php index a09d33ce7..4732d79eb 100644 --- a/src/models/jsonld/ComputerStore.php +++ b/src/models/jsonld/ComputerStore.php @@ -23,331 +23,331 @@ */ class ComputerStore extends MetaJsonLd implements ComputerStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ComputerStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ComputerStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ComputerStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ComputerStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ComputerStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ComputerStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A computer store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A computer store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ConfirmAction.php b/src/models/jsonld/ConfirmAction.php index 11c3d0452..b2ff43d70 100644 --- a/src/models/jsonld/ConfirmAction.php +++ b/src/models/jsonld/ConfirmAction.php @@ -25,159 +25,159 @@ */ class ConfirmAction extends MetaJsonLd implements ConfirmActionInterface, InformActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use ConfirmActionTrait; - use InformActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ConfirmAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ConfirmAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InformAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of notifying someone that a future event/action is going to happen as expected.\n\nRelated actions:\n\n* [[CancelAction]]: The antonym of ConfirmAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ConfirmActionTrait; + use InformActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ConfirmAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ConfirmAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InformAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of notifying someone that a future event/action is going to happen as expected.\n\nRelated actions:\n\n* [[CancelAction]]: The antonym of ConfirmAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Consortium.php b/src/models/jsonld/Consortium.php index 58beb20a9..9e079a1c3 100644 --- a/src/models/jsonld/Consortium.php +++ b/src/models/jsonld/Consortium.php @@ -24,254 +24,254 @@ */ class Consortium extends MetaJsonLd implements ConsortiumInterface, OrganizationInterface, ThingInterface { - use ConsortiumTrait; - use OrganizationTrait; - use ThingTrait; + use ConsortiumTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Consortium'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Consortium'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Consortium'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Consortium'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Consortium is a membership [[Organization]] whose members are typically Organizations.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Consortium is a membership [[Organization]] whose members are typically Organizations.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ConsumeAction.php b/src/models/jsonld/ConsumeAction.php index 892805032..4d5ed388e 100644 --- a/src/models/jsonld/ConsumeAction.php +++ b/src/models/jsonld/ConsumeAction.php @@ -23,150 +23,150 @@ */ class ConsumeAction extends MetaJsonLd implements ConsumeActionInterface, ActionInterface, ThingInterface { - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ConsumeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ConsumeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of ingesting information/resources/food.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ConsumeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ConsumeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of ingesting information/resources/food.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ContactPage.php b/src/models/jsonld/ContactPage.php index 86aae78b2..442409f2f 100644 --- a/src/models/jsonld/ContactPage.php +++ b/src/models/jsonld/ContactPage.php @@ -23,367 +23,367 @@ */ class ContactPage extends MetaJsonLd implements ContactPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use ContactPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use ContactPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ContactPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ContactPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ContactPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ContactPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Contact page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Contact page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ContactPoint.php b/src/models/jsonld/ContactPoint.php index 21ade5716..103fee7f9 100644 --- a/src/models/jsonld/ContactPoint.php +++ b/src/models/jsonld/ContactPoint.php @@ -23,143 +23,143 @@ */ class ContactPoint extends MetaJsonLd implements ContactPointInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use ContactPointTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ContactPoint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ContactPoint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A contact point—for example, a Customer Complaints department.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'availableLanguage' => ['Text', 'Language'], - 'contactOption' => ['ContactPointOption'], - 'contactType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'email' => ['Text'], - 'faxNumber' => ['Text'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'productSupported' => ['Text', 'Product'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'contactOption' => 'An option available on this contact point (e.g. a toll-free number or support for hearing-impaired callers).', - 'contactType' => 'A person or organization can have different contact points, for different purposes. For example, a sales contact point, a PR contact point and so on. This property is used to specify the kind of contact point.', - 'description' => 'A description of the item.', - '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.', - 'email' => 'Email address.', - 'faxNumber' => 'The fax number.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productSupported' => 'The product or service this support contact point is related to (such as product support for a particular product line). This can be a specific product or product line (e.g. "iPhone") or a general category of products or services (e.g. "smartphones").', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ContactPointTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ContactPoint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ContactPoint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A contact point—for example, a Customer Complaints department.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'availableLanguage' => ['Text', 'Language'], + 'contactOption' => ['ContactPointOption'], + 'contactType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'email' => ['Text'], + 'faxNumber' => ['Text'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'productSupported' => ['Text', 'Product'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'contactOption' => 'An option available on this contact point (e.g. a toll-free number or support for hearing-impaired callers).', + 'contactType' => 'A person or organization can have different contact points, for different purposes. For example, a sales contact point, a PR contact point and so on. This property is used to specify the kind of contact point.', + 'description' => 'A description of the item.', + '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.', + 'email' => 'Email address.', + 'faxNumber' => 'The fax number.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productSupported' => 'The product or service this support contact point is related to (such as product support for a particular product line). This can be a specific product or product line (e.g. "iPhone") or a general category of products or services (e.g. "smartphones").', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ContactPointOption.php b/src/models/jsonld/ContactPointOption.php index 332e0206c..e5c9eb478 100644 --- a/src/models/jsonld/ContactPointOption.php +++ b/src/models/jsonld/ContactPointOption.php @@ -23,125 +23,125 @@ */ class ContactPointOption extends MetaJsonLd implements ContactPointOptionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ContactPointOptionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ContactPointOption'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ContactPointOption'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerated options related to a ContactPoint.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ContactPointOptionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ContactPointOption'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ContactPointOption'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerated options related to a ContactPoint.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ContagiousnessHealthAspect.php b/src/models/jsonld/ContagiousnessHealthAspect.php index 01d714ee8..5eeb21987 100644 --- a/src/models/jsonld/ContagiousnessHealthAspect.php +++ b/src/models/jsonld/ContagiousnessHealthAspect.php @@ -24,126 +24,126 @@ */ class ContagiousnessHealthAspect extends MetaJsonLd implements ContagiousnessHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ContagiousnessHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ContagiousnessHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ContagiousnessHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about contagion mechanisms and contagiousness information over the topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ContagiousnessHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ContagiousnessHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ContagiousnessHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about contagion mechanisms and contagiousness information over the topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Continent.php b/src/models/jsonld/Continent.php index f1b3694c5..6aeddb484 100644 --- a/src/models/jsonld/Continent.php +++ b/src/models/jsonld/Continent.php @@ -23,213 +23,213 @@ */ class Continent extends MetaJsonLd implements ContinentInterface, LandformInterface, PlaceInterface, ThingInterface { - use ContinentTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Continent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Continent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'One of the continents (for example, Europe or Africa).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ContinentTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Continent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Continent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'One of the continents (for example, Europe or Africa).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ControlAction.php b/src/models/jsonld/ControlAction.php index d847dcbc3..9ac180e3a 100644 --- a/src/models/jsonld/ControlAction.php +++ b/src/models/jsonld/ControlAction.php @@ -23,146 +23,146 @@ */ class ControlAction extends MetaJsonLd implements ControlActionInterface, ActionInterface, ThingInterface { - use ControlActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ControlAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ControlAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent controls a device or application.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ControlActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ControlAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ControlAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent controls a device or application.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ConvenienceStore.php b/src/models/jsonld/ConvenienceStore.php index ffc732aec..0bffc1f52 100644 --- a/src/models/jsonld/ConvenienceStore.php +++ b/src/models/jsonld/ConvenienceStore.php @@ -23,331 +23,331 @@ */ class ConvenienceStore extends MetaJsonLd implements ConvenienceStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ConvenienceStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ConvenienceStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ConvenienceStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ConvenienceStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ConvenienceStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ConvenienceStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A convenience store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A convenience store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Conversation.php b/src/models/jsonld/Conversation.php index 01ab3f58b..d2de5b2c8 100644 --- a/src/models/jsonld/Conversation.php +++ b/src/models/jsonld/Conversation.php @@ -25,346 +25,346 @@ */ class Conversation extends MetaJsonLd implements ConversationInterface, CreativeWorkInterface, ThingInterface { - use ConversationTrait; - use CreativeWorkTrait; - use ThingTrait; + use ConversationTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Conversation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Conversation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Conversation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Conversation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'One or more messages between organizations or people on a particular topic. Individual messages can be linked to the conversation with isPartOf or hasPart properties.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'One or more messages between organizations or people on a particular topic. Individual messages can be linked to the conversation with isPartOf or hasPart properties.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CookAction.php b/src/models/jsonld/CookAction.php index 277f57e35..596e182db 100644 --- a/src/models/jsonld/CookAction.php +++ b/src/models/jsonld/CookAction.php @@ -23,153 +23,153 @@ */ class CookAction extends MetaJsonLd implements CookActionInterface, CreateActionInterface, ActionInterface, ThingInterface { - use CookActionTrait; - use CreateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CookAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CookAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of producing/preparing food.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'foodEstablishment' => ['FoodEstablishment', 'Place'], - 'foodEvent' => ['FoodEvent'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipe' => ['Recipe'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'foodEstablishment' => 'A sub property of location. The specific food establishment where the action occurred.', - 'foodEvent' => 'A sub property of location. The specific food event where the action occurred.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipe' => 'A sub property of instrument. The recipe/instructions used to perform the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CookActionTrait; + use CreateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CookAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CookAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of producing/preparing food.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'foodEstablishment' => ['FoodEstablishment', 'Place'], + 'foodEvent' => ['FoodEvent'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipe' => ['Recipe'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'foodEstablishment' => 'A sub property of location. The specific food establishment where the action occurred.', + 'foodEvent' => 'A sub property of location. The specific food event where the action occurred.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipe' => 'A sub property of instrument. The recipe/instructions used to perform the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Corporation.php b/src/models/jsonld/Corporation.php index da22ae2d7..ab378e712 100644 --- a/src/models/jsonld/Corporation.php +++ b/src/models/jsonld/Corporation.php @@ -23,256 +23,256 @@ */ class Corporation extends MetaJsonLd implements CorporationInterface, OrganizationInterface, ThingInterface { - use CorporationTrait; - use OrganizationTrait; - use ThingTrait; + use CorporationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Corporation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Corporation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Corporation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Corporation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Organization: A business corporation.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Organization: A business corporation.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tickerSymbol' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tickerSymbol' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'tickerSymbol' => 'The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO 15022.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'tickerSymbol' => 'The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO 15022.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CorrectionComment.php b/src/models/jsonld/CorrectionComment.php index ef81569d2..81839963a 100644 --- a/src/models/jsonld/CorrectionComment.php +++ b/src/models/jsonld/CorrectionComment.php @@ -23,353 +23,353 @@ */ class CorrectionComment extends MetaJsonLd implements CorrectionCommentInterface, CommentInterface, CreativeWorkInterface, ThingInterface { - use CorrectionCommentTrait; - use CommentTrait; - use CreativeWorkTrait; - use ThingTrait; + use CorrectionCommentTrait; + use CommentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CorrectionComment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CorrectionComment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CorrectionComment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CorrectionComment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Comment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Comment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[comment]] that corrects [[CreativeWork]].'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[comment]] that corrects [[CreativeWork]].'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downvoteCount' => ['Integer'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'parentItem' => ['Comment'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'upvoteCount' => ['Integer'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downvoteCount' => ['Integer'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'parentItem' => ['Comment'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'upvoteCount' => ['Integer'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'parentItem' => 'The parent of a question, answer or item in general.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'parentItem' => 'The parent of a question, answer or item in general.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Country.php b/src/models/jsonld/Country.php index 9f41565fb..81f95c3f7 100644 --- a/src/models/jsonld/Country.php +++ b/src/models/jsonld/Country.php @@ -23,213 +23,213 @@ */ class Country extends MetaJsonLd implements CountryInterface, AdministrativeAreaInterface, PlaceInterface, ThingInterface { - use CountryTrait; - use AdministrativeAreaTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Country'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Country'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A country.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CountryTrait; + use AdministrativeAreaTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Country'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Country'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A country.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Course.php b/src/models/jsonld/Course.php index 12ba915a4..c1153c270 100644 --- a/src/models/jsonld/Course.php +++ b/src/models/jsonld/Course.php @@ -28,361 +28,361 @@ */ class Course extends MetaJsonLd implements CourseInterface, LearningResourceInterface, CreativeWorkInterface, ThingInterface { - use CourseTrait; - use LearningResourceTrait; - use CreativeWorkTrait; - use ThingTrait; + use CourseTrait; + use LearningResourceTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Course'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Course'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Course'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Course'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LearningResource'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LearningResource'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A description of an educational course which may be offered as distinct instances which take place at different times or take place at different locations, or be offered through different media or modes of study. An educational course is a sequence of one or more educational events and/or creative works which aims to build knowledge, competence or ability of learners.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A description of an educational course which may be offered as distinct instances which take place at different times or take place at different locations, or be offered through different media or modes of study. An educational course is a sequence of one or more educational events and/or creative works which aims to build knowledge, competence or ability of learners.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'courseCode' => ['Text'], - 'coursePrerequisites' => ['Course', 'AlignmentObject', 'Text'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalCredentialAwarded' => ['URL', 'EducationalOccupationalCredential', 'Text'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasCourseInstance' => ['CourseInstance'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfCredits' => ['StructuredValue', 'Integer'], - 'occupationalCredentialAwarded' => ['EducationalOccupationalCredential', 'Text', 'URL'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'courseCode' => ['Text'], + 'coursePrerequisites' => ['Course', 'AlignmentObject', 'Text'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalCredentialAwarded' => ['URL', 'EducationalOccupationalCredential', 'Text'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasCourseInstance' => ['CourseInstance'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfCredits' => ['StructuredValue', 'Integer'], + 'occupationalCredentialAwarded' => ['EducationalOccupationalCredential', 'Text', 'URL'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'courseCode' => 'The identifier for the [[Course]] used by the course [[provider]] (e.g. CS101 or 6.001).', - 'coursePrerequisites' => 'Requirements for taking the Course. May be completion of another [[Course]] or a textual description like "permission of instructor". Requirements may be a pre-requisite competency, referenced using [[AlignmentObject]].', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasCourseInstance' => 'An offering of the course at a specific time and place or through specific media or mode of study or to a specific section of students.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfCredits' => 'The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.', - 'occupationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'courseCode' => 'The identifier for the [[Course]] used by the course [[provider]] (e.g. CS101 or 6.001).', + 'coursePrerequisites' => 'Requirements for taking the Course. May be completion of another [[Course]] or a textual description like "permission of instructor". Requirements may be a pre-requisite competency, referenced using [[AlignmentObject]].', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasCourseInstance' => 'An offering of the course at a specific time and place or through specific media or mode of study or to a specific section of students.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfCredits' => 'The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.', + 'occupationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CourseInstance.php b/src/models/jsonld/CourseInstance.php index 035fdc403..eef1ed397 100644 --- a/src/models/jsonld/CourseInstance.php +++ b/src/models/jsonld/CourseInstance.php @@ -25,210 +25,210 @@ */ class CourseInstance extends MetaJsonLd implements CourseInstanceInterface, EventInterface, ThingInterface { - use CourseInstanceTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CourseInstance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CourseInstance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An instance of a [[Course]] which is distinct from other instances because it is offered at a different time or location or through different media or modes of study or to a specific section of students.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'courseMode' => ['Text', 'URL'], - 'courseWorkload' => ['Text'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instructor' => ['Person'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'courseMode' => 'The medium or means of delivery of the course instance or the mode of study, either as a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or as a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous).', - 'courseWorkload' => 'The amount of work expected of students taking the course, often provided as a figure per week or per month, and may be broken down by type. For example, "2 hours of lectures, 1 hour of lab work and 3 hours of independent study per week".', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instructor' => 'A person assigned to instruct or provide instructional assistance for the [[CourseInstance]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CourseInstanceTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CourseInstance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CourseInstance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An instance of a [[Course]] which is distinct from other instances because it is offered at a different time or location or through different media or modes of study or to a specific section of students.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'courseMode' => ['Text', 'URL'], + 'courseWorkload' => ['Text'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instructor' => ['Person'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'courseMode' => 'The medium or means of delivery of the course instance or the mode of study, either as a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or as a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous).', + 'courseWorkload' => 'The amount of work expected of students taking the course, often provided as a figure per week or per month, and may be broken down by type. For example, "2 hours of lectures, 1 hour of lab work and 3 hours of independent study per week".', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instructor' => 'A person assigned to instruct or provide instructional assistance for the [[CourseInstance]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Courthouse.php b/src/models/jsonld/Courthouse.php index cc2d8c6df..ac486b17a 100644 --- a/src/models/jsonld/Courthouse.php +++ b/src/models/jsonld/Courthouse.php @@ -23,216 +23,216 @@ */ class Courthouse extends MetaJsonLd implements CourthouseInterface, GovernmentBuildingInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use CourthouseTrait; - use GovernmentBuildingTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Courthouse'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Courthouse'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A courthouse.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CourthouseTrait; + use GovernmentBuildingTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Courthouse'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Courthouse'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A courthouse.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CoverArt.php b/src/models/jsonld/CoverArt.php index 9082fa4e2..76ae1b156 100644 --- a/src/models/jsonld/CoverArt.php +++ b/src/models/jsonld/CoverArt.php @@ -23,373 +23,373 @@ */ class CoverArt extends MetaJsonLd implements CoverArtInterface, VisualArtworkInterface, CreativeWorkInterface, ThingInterface { - use CoverArtTrait; - use VisualArtworkTrait; - use CreativeWorkTrait; - use ThingTrait; + use CoverArtTrait; + use VisualArtworkTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CoverArt'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CoverArt'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CoverArt'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CoverArt'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'VisualArtwork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'VisualArtwork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The artwork on the outer surface of a CreativeWork.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The artwork on the outer surface of a CreativeWork.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'artEdition' => ['Integer', 'Text'], - 'artMedium' => ['URL', 'Text'], - 'artform' => ['URL', 'Text'], - 'artist' => ['Person'], - 'artworkSurface' => ['URL', 'Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'colorist' => ['Person'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'inker' => ['Person'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'letterer' => ['Person'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'penciler' => ['Person'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'surface' => ['Text', 'URL'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'artEdition' => ['Integer', 'Text'], + 'artMedium' => ['URL', 'Text'], + 'artform' => ['URL', 'Text'], + 'artist' => ['Person'], + 'artworkSurface' => ['URL', 'Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'colorist' => ['Person'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'inker' => ['Person'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'letterer' => ['Person'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'penciler' => ['Person'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'surface' => ['Text', 'URL'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'artEdition' => 'The number of copies when multiple copies of a piece of artwork are produced - e.g. for a limited edition of 20 prints, \'artEdition\' refers to the total number of copies (in this example "20").', - 'artMedium' => 'The material used. (E.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)', - 'artform' => 'e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.', - 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', - 'artworkSurface' => 'The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'colorist' => 'The individual who adds color to inked drawings.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'penciler' => 'The individual who draws the primary narrative artwork.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'surface' => 'A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'artEdition' => 'The number of copies when multiple copies of a piece of artwork are produced - e.g. for a limited edition of 20 prints, \'artEdition\' refers to the total number of copies (in this example "20").', + 'artMedium' => 'The material used. (E.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)', + 'artform' => 'e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.', + 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', + 'artworkSurface' => 'The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'colorist' => 'The individual who adds color to inked drawings.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'penciler' => 'The individual who draws the primary narrative artwork.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'surface' => 'A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CovidTestingFacility.php b/src/models/jsonld/CovidTestingFacility.php index 5f6bf7adb..e37b7c71d 100644 --- a/src/models/jsonld/CovidTestingFacility.php +++ b/src/models/jsonld/CovidTestingFacility.php @@ -29,341 +29,341 @@ */ class CovidTestingFacility extends MetaJsonLd implements CovidTestingFacilityInterface, MedicalClinicInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalOrganizationInterface { - use CovidTestingFacilityTrait; - use MedicalClinicTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalOrganizationTrait; + use CovidTestingFacilityTrait; + use MedicalClinicTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalOrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CovidTestingFacility'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CovidTestingFacility'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CovidTestingFacility'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CovidTestingFacility'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalClinic'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalClinic'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A CovidTestingFacility is a [[MedicalClinic]] where testing for the COVID-19 Coronavirus\n disease is available. If the facility is being made available from an established [[Pharmacy]], [[Hotel]], or other\n non-medical organization, multiple types can be listed. This makes it easier to re-use existing schema.org information\n about that place, e.g. contact info, address, opening hours. Note that in an emergency, such information may not always be reliable.\n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A CovidTestingFacility is a [[MedicalClinic]] where testing for the COVID-19 Coronavirus\n disease is available. If the facility is being made available from an established [[Pharmacy]], [[Hotel]], or other\n non-medical organization, multiple types can be listed. This makes it easier to re-use existing schema.org information\n about that place, e.g. contact info, address, opening hours. Note that in an emergency, such information may not always be reliable.\n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'availableService' => 'A medical service available from this provider.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'availableService' => 'A medical service available from this provider.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CreateAction.php b/src/models/jsonld/CreateAction.php index 94e5cc15a..5ce365554 100644 --- a/src/models/jsonld/CreateAction.php +++ b/src/models/jsonld/CreateAction.php @@ -24,146 +24,146 @@ */ class CreateAction extends MetaJsonLd implements CreateActionInterface, ActionInterface, ThingInterface { - use CreateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CreateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CreateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of deliberately creating/producing/generating/building a result out of the agent.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CreateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CreateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CreateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of deliberately creating/producing/generating/building a result out of the agent.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CreativeWork.php b/src/models/jsonld/CreativeWork.php index 4a45bde2d..893a7050f 100644 --- a/src/models/jsonld/CreativeWork.php +++ b/src/models/jsonld/CreativeWork.php @@ -24,345 +24,345 @@ */ class CreativeWork extends MetaJsonLd implements CreativeWorkInterface, ThingInterface { - use CreativeWorkTrait; - use ThingTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CreativeWork'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CreativeWork'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CreativeWork'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CreativeWork'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The most generic kind of creative work, including books, movies, photographs, software programs, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The most generic kind of creative work, including books, movies, photographs, software programs, etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CreativeWorkSeason.php b/src/models/jsonld/CreativeWorkSeason.php index cd0abdc8e..e3d419088 100644 --- a/src/models/jsonld/CreativeWorkSeason.php +++ b/src/models/jsonld/CreativeWorkSeason.php @@ -23,368 +23,368 @@ */ class CreativeWorkSeason extends MetaJsonLd implements CreativeWorkSeasonInterface, CreativeWorkInterface, ThingInterface { - use CreativeWorkSeasonTrait; - use CreativeWorkTrait; - use ThingTrait; + use CreativeWorkSeasonTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CreativeWorkSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CreativeWorkSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CreativeWorkSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CreativeWorkSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A media season, e.g. TV, radio, video game etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A media season, e.g. TV, radio, video game etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'episode' => ['Episode'], - 'episodes' => ['Episode'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfEpisodes' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'seasonNumber' => ['Text', 'Integer'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'episode' => ['Episode'], + 'episodes' => ['Episode'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfEpisodes' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'seasonNumber' => ['Text', 'Integer'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'episode' => 'An episode of a TV, radio or game media within a series or season.', - 'episodes' => 'An episode of a TV/radio series or season.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfEpisodes' => 'The number of episodes in this season or series.', - '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. ', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'seasonNumber' => 'Position of the season within an ordered group of seasons.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'episode' => 'An episode of a TV, radio or game media within a series or season.', + 'episodes' => 'An episode of a TV/radio series or season.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfEpisodes' => 'The number of episodes in this season or series.', + '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. ', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'seasonNumber' => 'Position of the season within an ordered group of seasons.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CreativeWorkSeries.php b/src/models/jsonld/CreativeWorkSeries.php index 4a3d284b7..c03fffbf3 100644 --- a/src/models/jsonld/CreativeWorkSeries.php +++ b/src/models/jsonld/CreativeWorkSeries.php @@ -37,354 +37,354 @@ */ class CreativeWorkSeries extends MetaJsonLd implements CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CreativeWorkSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CreativeWorkSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CreativeWorkSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CreativeWorkSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Series'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Series'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A CreativeWorkSeries in schema.org is a group of related items, typically but not necessarily of the same kind. CreativeWorkSeries are usually organized into some order, often chronological. Unlike [[ItemList]] which is a general purpose data structure for lists of things, the emphasis with CreativeWorkSeries is on published materials (written e.g. books and periodicals, or media such as TV, radio and games).\\n\\nSpecific subtypes are available for describing [[TVSeries]], [[RadioSeries]], [[MovieSeries]], [[BookSeries]], [[Periodical]] and [[VideoGameSeries]]. In each case, the [[hasPart]] / [[isPartOf]] properties can be used to relate the CreativeWorkSeries to its parts. The general CreativeWorkSeries type serves largely just to organize these more specific and practical subtypes.\\n\\nIt is common for properties applicable to an item from the series to be usefully applied to the containing group. Schema.org attempts to anticipate some of these cases, but publishers should be free to apply properties of the series parts to the series as a whole wherever they seem appropriate.\n\t "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A CreativeWorkSeries in schema.org is a group of related items, typically but not necessarily of the same kind. CreativeWorkSeries are usually organized into some order, often chronological. Unlike [[ItemList]] which is a general purpose data structure for lists of things, the emphasis with CreativeWorkSeries is on published materials (written e.g. books and periodicals, or media such as TV, radio and games).\\n\\nSpecific subtypes are available for describing [[TVSeries]], [[RadioSeries]], [[MovieSeries]], [[BookSeries]], [[Periodical]] and [[VideoGameSeries]]. In each case, the [[hasPart]] / [[isPartOf]] properties can be used to relate the CreativeWorkSeries to its parts. The general CreativeWorkSeries type serves largely just to organize these more specific and practical subtypes.\\n\\nIt is common for properties applicable to an item from the series to be usefully applied to the containing group. Schema.org attempts to anticipate some of these cases, but publishers should be free to apply properties of the series parts to the series as a whole wherever they seem appropriate.\n\t "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CreditCard.php b/src/models/jsonld/CreditCard.php index 401590772..e69baf4ee 100644 --- a/src/models/jsonld/CreditCard.php +++ b/src/models/jsonld/CreditCard.php @@ -31,210 +31,210 @@ */ class CreditCard extends MetaJsonLd implements CreditCardInterface, PaymentCardInterface, PaymentMethodInterface, EnumerationInterface, IntangibleInterface, ThingInterface, FinancialProductInterface, ServiceInterface, LoanOrCreditInterface { - use CreditCardTrait; - use PaymentCardTrait; - use PaymentMethodTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use FinancialProductTrait; - use ServiceTrait; - use LoanOrCreditTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CreditCard'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CreditCard'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PaymentCard'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A card payment method of a particular brand or name. Used to mark up a particular payment method and/or the financial product/service that supplies the card account.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#AmericanExpress\\n* http://purl.org/goodrelations/v1#DinersClub\\n* http://purl.org/goodrelations/v1#Discover\\n* http://purl.org/goodrelations/v1#JCB\\n* http://purl.org/goodrelations/v1#MasterCard\\n* http://purl.org/goodrelations/v1#VISA\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'cashBack' => ['Boolean', 'Number'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'contactlessPayment' => ['Boolean'], - 'currency' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'floorLimit' => ['MonetaryAmount'], - 'gracePeriod' => ['Duration'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'loanRepaymentForm' => ['RepaymentSpecification'], - 'loanTerm' => ['QuantitativeValue'], - 'loanType' => ['URL', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'monthlyMinimumRepaymentAmount' => ['Number', 'MonetaryAmount'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'recourseLoan' => ['Boolean'], - 'renegotiableLoan' => ['Boolean'], - 'requiredCollateral' => ['Thing', 'Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'cashBack' => 'A cardholder benefit that pays the cardholder a small percentage of their net expenditures.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'contactlessPayment' => 'A secure method for consumers to purchase products or services via debit, credit or smartcards by using RFID or NFC technology.', - 'currency' => 'The currency in which the monetary amount is expressed. 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".', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'floorLimit' => 'A floor limit is the amount of money above which credit card transactions must be authorized.', - 'gracePeriod' => 'The period of time after any due date that the borrower has to fulfil its obligations before a default (failure to pay) is deemed to have occurred.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'loanRepaymentForm' => 'A form of paying back money previously borrowed from a lender. Repayment usually takes the form of periodic payments that normally include part principal plus interest in each payment.', - 'loanTerm' => 'The duration of the loan or credit agreement.', - 'loanType' => 'The type of a loan or credit.', - 'logo' => 'An associated logo.', - '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.', - 'monthlyMinimumRepaymentAmount' => 'The minimum payment is the lowest amount of money that one is required to pay on a credit card statement each month.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'recourseLoan' => 'The only way you get the money back in the event of default is the security. Recourse is where you still have the opportunity to go back to the borrower for the rest of the money.', - 'renegotiableLoan' => 'Whether the terms for payment of interest can be renegotiated during the life of the loan.', - 'requiredCollateral' => 'Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CreditCardTrait; + use PaymentCardTrait; + use PaymentMethodTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use FinancialProductTrait; + use ServiceTrait; + use LoanOrCreditTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CreditCard'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CreditCard'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PaymentCard'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A card payment method of a particular brand or name. Used to mark up a particular payment method and/or the financial product/service that supplies the card account.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#AmericanExpress\\n* http://purl.org/goodrelations/v1#DinersClub\\n* http://purl.org/goodrelations/v1#Discover\\n* http://purl.org/goodrelations/v1#JCB\\n* http://purl.org/goodrelations/v1#MasterCard\\n* http://purl.org/goodrelations/v1#VISA\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'cashBack' => ['Boolean', 'Number'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'contactlessPayment' => ['Boolean'], + 'currency' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'floorLimit' => ['MonetaryAmount'], + 'gracePeriod' => ['Duration'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'loanRepaymentForm' => ['RepaymentSpecification'], + 'loanTerm' => ['QuantitativeValue'], + 'loanType' => ['URL', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'monthlyMinimumRepaymentAmount' => ['Number', 'MonetaryAmount'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'recourseLoan' => ['Boolean'], + 'renegotiableLoan' => ['Boolean'], + 'requiredCollateral' => ['Thing', 'Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'cashBack' => 'A cardholder benefit that pays the cardholder a small percentage of their net expenditures.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'contactlessPayment' => 'A secure method for consumers to purchase products or services via debit, credit or smartcards by using RFID or NFC technology.', + 'currency' => 'The currency in which the monetary amount is expressed. 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".', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'floorLimit' => 'A floor limit is the amount of money above which credit card transactions must be authorized.', + 'gracePeriod' => 'The period of time after any due date that the borrower has to fulfil its obligations before a default (failure to pay) is deemed to have occurred.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'loanRepaymentForm' => 'A form of paying back money previously borrowed from a lender. Repayment usually takes the form of periodic payments that normally include part principal plus interest in each payment.', + 'loanTerm' => 'The duration of the loan or credit agreement.', + 'loanType' => 'The type of a loan or credit.', + 'logo' => 'An associated logo.', + '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.', + 'monthlyMinimumRepaymentAmount' => 'The minimum payment is the lowest amount of money that one is required to pay on a credit card statement each month.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'recourseLoan' => 'The only way you get the money back in the event of default is the security. Recourse is where you still have the opportunity to go back to the borrower for the rest of the money.', + 'renegotiableLoan' => 'Whether the terms for payment of interest can be renegotiated during the life of the loan.', + 'requiredCollateral' => 'Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Crematorium.php b/src/models/jsonld/Crematorium.php index 07a1c0969..961f0daa5 100644 --- a/src/models/jsonld/Crematorium.php +++ b/src/models/jsonld/Crematorium.php @@ -23,215 +23,215 @@ */ class Crematorium extends MetaJsonLd implements CrematoriumInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use CrematoriumTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Crematorium'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Crematorium'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A crematorium.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CrematoriumTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Crematorium'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Crematorium'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A crematorium.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CriticReview.php b/src/models/jsonld/CriticReview.php index 3f83cff33..c673997ba 100644 --- a/src/models/jsonld/CriticReview.php +++ b/src/models/jsonld/CriticReview.php @@ -31,365 +31,365 @@ */ class CriticReview extends MetaJsonLd implements CriticReviewInterface, ReviewInterface, CreativeWorkInterface, ThingInterface { - use CriticReviewTrait; - use ReviewTrait; - use CreativeWorkTrait; - use ThingTrait; + use CriticReviewTrait; + use ReviewTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CriticReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CriticReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CriticReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CriticReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[CriticReview]] is a more specialized form of Review written or published by a source that is recognized for its reviewing activities. These can include online columns, travel and food guides, TV and radio shows, blogs and other independent Web sites. [[CriticReview]]s are typically more in-depth and professionally written. For simpler, casually written user/visitor/viewer/customer reviews, it is more appropriate to use the [[UserReview]] type. Review aggregator sites such as Metacritic already separate out the site\'s user reviews from selected critic reviews that originate from third-party sources.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[CriticReview]] is a more specialized form of Review written or published by a source that is recognized for its reviewing activities. These can include online columns, travel and food guides, TV and radio shows, blogs and other independent Web sites. [[CriticReview]]s are typically more in-depth and professionally written. For simpler, casually written user/visitor/viewer/customer reviews, it is more appropriate to use the [[UserReview]] type. Review aggregator sites such as Metacritic already separate out the site\'s user reviews from selected critic reviews that originate from third-party sources.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/CrossSectional.php b/src/models/jsonld/CrossSectional.php index 27a8eed6e..30e63d2a2 100644 --- a/src/models/jsonld/CrossSectional.php +++ b/src/models/jsonld/CrossSectional.php @@ -25,127 +25,127 @@ */ class CrossSectional extends MetaJsonLd implements CrossSectionalInterface, MedicalObservationalStudyDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use CrossSectionalTrait; - use MedicalObservationalStudyDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CrossSectional'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CrossSectional'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Studies carried out on pre-existing data (usually from \'snapshot\' surveys), such as that collected by the Census Bureau. Sometimes called Prevalence Studies.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CrossSectionalTrait; + use MedicalObservationalStudyDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CrossSectional'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CrossSectional'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Studies carried out on pre-existing data (usually from \'snapshot\' surveys), such as that collected by the Census Bureau. Sometimes called Prevalence Studies.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CssSelectorType.php b/src/models/jsonld/CssSelectorType.php index df94f5659..540aeec09 100644 --- a/src/models/jsonld/CssSelectorType.php +++ b/src/models/jsonld/CssSelectorType.php @@ -23,99 +23,99 @@ */ class CssSelectorType extends MetaJsonLd implements CssSelectorTypeInterface, TextInterface { - use CssSelectorTypeTrait; - use TextTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CssSelectorType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CssSelectorType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Text representing a CSS selector.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CssSelectorTypeTrait; + use TextTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CssSelectorType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CssSelectorType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Text representing a CSS selector.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/CurrencyConversionService.php b/src/models/jsonld/CurrencyConversionService.php index d85d22a90..f47676747 100644 --- a/src/models/jsonld/CurrencyConversionService.php +++ b/src/models/jsonld/CurrencyConversionService.php @@ -23,178 +23,178 @@ */ class CurrencyConversionService extends MetaJsonLd implements CurrencyConversionServiceInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use CurrencyConversionServiceTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'CurrencyConversionService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/CurrencyConversionService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A service to convert funds from one currency to another currency.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use CurrencyConversionServiceTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'CurrencyConversionService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/CurrencyConversionService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A service to convert funds from one currency to another currency.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DDxElement.php b/src/models/jsonld/DDxElement.php index 7206c9821..236a7009c 100644 --- a/src/models/jsonld/DDxElement.php +++ b/src/models/jsonld/DDxElement.php @@ -25,143 +25,143 @@ */ class DDxElement extends MetaJsonLd implements DDxElementInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use DDxElementTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DDxElement'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DDxElement'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An alternative, closely-related condition typically considered later in the differential diagnosis process along with the signs that are used to distinguish it.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'diagnosis' => ['MedicalCondition'], - 'disambiguatingDescription' => ['Text'], - 'distinguishingSign' => ['MedicalSignOrSymptom'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - 'diagnosis' => 'One or more alternative conditions considered in the differential diagnosis process as output of a diagnosis process.', - '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.', - 'distinguishingSign' => 'One of a set of signs and symptoms that can be used to distinguish this diagnosis from others in the differential diagnosis.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DDxElementTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DDxElement'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DDxElement'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An alternative, closely-related condition typically considered later in the differential diagnosis process along with the signs that are used to distinguish it.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'diagnosis' => ['MedicalCondition'], + 'disambiguatingDescription' => ['Text'], + 'distinguishingSign' => ['MedicalSignOrSymptom'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + 'diagnosis' => 'One or more alternative conditions considered in the differential diagnosis process as output of a diagnosis process.', + '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.', + 'distinguishingSign' => 'One of a set of signs and symptoms that can be used to distinguish this diagnosis from others in the differential diagnosis.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DJMixAlbum.php b/src/models/jsonld/DJMixAlbum.php index 20931053c..db719ed56 100644 --- a/src/models/jsonld/DJMixAlbum.php +++ b/src/models/jsonld/DJMixAlbum.php @@ -23,126 +23,126 @@ */ class DJMixAlbum extends MetaJsonLd implements DJMixAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DJMixAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DJMixAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DJMixAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'DJMixAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DJMixAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DJMixAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DJMixAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'DJMixAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DVDFormat.php b/src/models/jsonld/DVDFormat.php index fcbacbd43..4fb59cbbe 100644 --- a/src/models/jsonld/DVDFormat.php +++ b/src/models/jsonld/DVDFormat.php @@ -23,126 +23,126 @@ */ class DVDFormat extends MetaJsonLd implements DVDFormatInterface, MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DVDFormatTrait; - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DVDFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DVDFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'DVDFormat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DVDFormatTrait; + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DVDFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DVDFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'DVDFormat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DamagedCondition.php b/src/models/jsonld/DamagedCondition.php index 4efb78257..0b7f28f09 100644 --- a/src/models/jsonld/DamagedCondition.php +++ b/src/models/jsonld/DamagedCondition.php @@ -23,126 +23,126 @@ */ class DamagedCondition extends MetaJsonLd implements DamagedConditionInterface, OfferItemConditionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DamagedConditionTrait; - use OfferItemConditionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DamagedCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DamagedCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is damaged.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DamagedConditionTrait; + use OfferItemConditionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DamagedCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DamagedCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is damaged.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DanceEvent.php b/src/models/jsonld/DanceEvent.php index fae107eb4..eab7818c3 100644 --- a/src/models/jsonld/DanceEvent.php +++ b/src/models/jsonld/DanceEvent.php @@ -23,204 +23,204 @@ */ class DanceEvent extends MetaJsonLd implements DanceEventInterface, EventInterface, ThingInterface { - use DanceEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DanceEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DanceEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: A social dance.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DanceEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DanceEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DanceEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: A social dance.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DanceGroup.php b/src/models/jsonld/DanceGroup.php index a71243e4f..86fe52440 100644 --- a/src/models/jsonld/DanceGroup.php +++ b/src/models/jsonld/DanceGroup.php @@ -23,255 +23,255 @@ */ class DanceGroup extends MetaJsonLd implements DanceGroupInterface, PerformingGroupInterface, OrganizationInterface, ThingInterface { - use DanceGroupTrait; - use PerformingGroupTrait; - use OrganizationTrait; - use ThingTrait; + use DanceGroupTrait; + use PerformingGroupTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DanceGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DanceGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DanceGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DanceGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PerformingGroup'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PerformingGroup'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A dance group—for example, the Alvin Ailey Dance Theater or Riverdance.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A dance group—for example, the Alvin Ailey Dance Theater or Riverdance.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DangerousGoodConsideration.php b/src/models/jsonld/DangerousGoodConsideration.php index 69d76406d..5984c732d 100644 --- a/src/models/jsonld/DangerousGoodConsideration.php +++ b/src/models/jsonld/DangerousGoodConsideration.php @@ -27,126 +27,126 @@ */ class DangerousGoodConsideration extends MetaJsonLd implements DangerousGoodConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DangerousGoodConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DangerousGoodConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DangerousGoodConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The item is dangerous and requires careful handling and/or special training of the user. See also the [UN Model Classification](https://unece.org/DAM/trans/danger/publi/unrec/rev17/English/02EREv17_Part2.pdf) defining the 9 classes of dangerous goods such as explosives, gases, flammables, and more.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DangerousGoodConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DangerousGoodConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DangerousGoodConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The item is dangerous and requires careful handling and/or special training of the user. See also the [UN Model Classification](https://unece.org/DAM/trans/danger/publi/unrec/rev17/English/02EREv17_Part2.pdf) defining the 9 classes of dangerous goods such as explosives, gases, flammables, and more.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DataCatalog.php b/src/models/jsonld/DataCatalog.php index a1e0e57ed..24595683a 100644 --- a/src/models/jsonld/DataCatalog.php +++ b/src/models/jsonld/DataCatalog.php @@ -23,350 +23,350 @@ */ class DataCatalog extends MetaJsonLd implements DataCatalogInterface, CreativeWorkInterface, ThingInterface { - use DataCatalogTrait; - use CreativeWorkTrait; - use ThingTrait; + use DataCatalogTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DataCatalog'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DataCatalog'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DataCatalog'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DataCatalog'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A collection of datasets.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A collection of datasets.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dataset' => ['Dataset'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'measurementTechnique' => ['URL', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dataset' => ['Dataset'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'measurementTechnique' => ['URL', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dataset' => 'A dataset contained in this catalog.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dataset' => 'A dataset contained in this catalog.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DataDownload.php b/src/models/jsonld/DataDownload.php index 8a5cb5028..082b2da6f 100644 --- a/src/models/jsonld/DataDownload.php +++ b/src/models/jsonld/DataDownload.php @@ -23,385 +23,385 @@ */ class DataDownload extends MetaJsonLd implements DataDownloadInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use DataDownloadTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use DataDownloadTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DataDownload'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DataDownload'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DataDownload'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DataDownload'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'All or part of a [[Dataset]] in downloadable form. '; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'All or part of a [[Dataset]] in downloadable form. '; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'measurementTechnique' => ['URL', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'measurementTechnique' => ['URL', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DataFeed.php b/src/models/jsonld/DataFeed.php index 7cc1f1255..45e9940ac 100644 --- a/src/models/jsonld/DataFeed.php +++ b/src/models/jsonld/DataFeed.php @@ -24,365 +24,365 @@ */ class DataFeed extends MetaJsonLd implements DataFeedInterface, DatasetInterface, CreativeWorkInterface, ThingInterface { - use DataFeedTrait; - use DatasetTrait; - use CreativeWorkTrait; - use ThingTrait; + use DataFeedTrait; + use DatasetTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DataFeed'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DataFeed'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DataFeed'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DataFeed'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Dataset'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Dataset'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A single feed providing structured information about one or more entities or topics.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A single feed providing structured information about one or more entities or topics.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'catalog' => ['DataCatalog'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dataFeedElement' => ['Text', 'Thing', 'DataFeedItem'], - 'datasetTimeInterval' => ['DateTime'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'distribution' => ['DataDownload'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'includedDataCatalog' => ['DataCatalog'], - 'includedInDataCatalog' => ['DataCatalog'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'measurementTechnique' => ['URL', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'variableMeasured' => ['Text', 'PropertyValue'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'catalog' => ['DataCatalog'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dataFeedElement' => ['Text', 'Thing', 'DataFeedItem'], + 'datasetTimeInterval' => ['DateTime'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'distribution' => ['DataDownload'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'includedDataCatalog' => ['DataCatalog'], + 'includedInDataCatalog' => ['DataCatalog'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'measurementTechnique' => ['URL', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'variableMeasured' => ['Text', 'PropertyValue'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'catalog' => 'A data catalog which contains this dataset.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dataFeedElement' => 'An item within a data feed. Data feeds may have many elements.', - 'datasetTimeInterval' => 'The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'distribution' => 'A downloadable form of this dataset, at a specific location, in a specific format. This property can be repeated if different variations are available. There is no expectation that different downloadable distributions must contain exactly equivalent information (see also [DCAT](https://www.w3.org/TR/vocab-dcat-3/#Class:Distribution) on this point). Different distributions might include or exclude different subsets of the entire dataset, for example.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'includedDataCatalog' => 'A data catalog which contains this dataset (this property was previously \'catalog\', preferred name is now \'includedInDataCatalog\').', - 'includedInDataCatalog' => 'A data catalog which contains this dataset.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'variableMeasured' => 'The variableMeasured property can indicate (repeated as necessary) the variables that are measured in some dataset, either described as text or as pairs of identifier and description using PropertyValue.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'catalog' => 'A data catalog which contains this dataset.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dataFeedElement' => 'An item within a data feed. Data feeds may have many elements.', + 'datasetTimeInterval' => 'The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'distribution' => 'A downloadable form of this dataset, at a specific location, in a specific format. This property can be repeated if different variations are available. There is no expectation that different downloadable distributions must contain exactly equivalent information (see also [DCAT](https://www.w3.org/TR/vocab-dcat-3/#Class:Distribution) on this point). Different distributions might include or exclude different subsets of the entire dataset, for example.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'includedDataCatalog' => 'A data catalog which contains this dataset (this property was previously \'catalog\', preferred name is now \'includedInDataCatalog\').', + 'includedInDataCatalog' => 'A data catalog which contains this dataset.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'variableMeasured' => 'The variableMeasured property can indicate (repeated as necessary) the variables that are measured in some dataset, either described as text or as pairs of identifier and description using PropertyValue.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DataFeedItem.php b/src/models/jsonld/DataFeedItem.php index 61e67801f..caf9d0061 100644 --- a/src/models/jsonld/DataFeedItem.php +++ b/src/models/jsonld/DataFeedItem.php @@ -23,130 +23,130 @@ */ class DataFeedItem extends MetaJsonLd implements DataFeedItemInterface, IntangibleInterface, ThingInterface { - use DataFeedItemTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DataFeedItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DataFeedItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A single item within a larger data feed.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateDeleted' => ['Date', 'DateTime'], - 'dateModified' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'item' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateDeleted' => 'The datetime the item was removed from the DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DataFeedItemTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DataFeedItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DataFeedItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A single item within a larger data feed.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateDeleted' => ['Date', 'DateTime'], + 'dateModified' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'item' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateDeleted' => 'The datetime the item was removed from the DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DataType.php b/src/models/jsonld/DataType.php index a464c8e04..501026d35 100644 --- a/src/models/jsonld/DataType.php +++ b/src/models/jsonld/DataType.php @@ -23,98 +23,98 @@ */ class DataType extends MetaJsonLd implements DataTypeInterface { - use DataTypeTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DataType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DataType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The basic data types such as Integers, Strings, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DataTypeTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DataType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DataType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The basic data types such as Integers, Strings, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Dataset.php b/src/models/jsonld/Dataset.php index bdb2bbd2d..57170b25a 100644 --- a/src/models/jsonld/Dataset.php +++ b/src/models/jsonld/Dataset.php @@ -23,362 +23,362 @@ */ class Dataset extends MetaJsonLd implements DatasetInterface, CreativeWorkInterface, ThingInterface { - use DatasetTrait; - use CreativeWorkTrait; - use ThingTrait; + use DatasetTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Dataset'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Dataset'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Dataset'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Dataset'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A body of structured information describing some topic(s) of interest.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A body of structured information describing some topic(s) of interest.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'catalog' => ['DataCatalog'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'datasetTimeInterval' => ['DateTime'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'distribution' => ['DataDownload'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'includedDataCatalog' => ['DataCatalog'], - 'includedInDataCatalog' => ['DataCatalog'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'measurementTechnique' => ['URL', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'variableMeasured' => ['Text', 'PropertyValue'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'catalog' => ['DataCatalog'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'datasetTimeInterval' => ['DateTime'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'distribution' => ['DataDownload'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'includedDataCatalog' => ['DataCatalog'], + 'includedInDataCatalog' => ['DataCatalog'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'measurementTechnique' => ['URL', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'variableMeasured' => ['Text', 'PropertyValue'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'catalog' => 'A data catalog which contains this dataset.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'datasetTimeInterval' => 'The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'distribution' => 'A downloadable form of this dataset, at a specific location, in a specific format. This property can be repeated if different variations are available. There is no expectation that different downloadable distributions must contain exactly equivalent information (see also [DCAT](https://www.w3.org/TR/vocab-dcat-3/#Class:Distribution) on this point). Different distributions might include or exclude different subsets of the entire dataset, for example.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'includedDataCatalog' => 'A data catalog which contains this dataset (this property was previously \'catalog\', preferred name is now \'includedInDataCatalog\').', - 'includedInDataCatalog' => 'A data catalog which contains this dataset.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'variableMeasured' => 'The variableMeasured property can indicate (repeated as necessary) the variables that are measured in some dataset, either described as text or as pairs of identifier and description using PropertyValue.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'catalog' => 'A data catalog which contains this dataset.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'datasetTimeInterval' => 'The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'distribution' => 'A downloadable form of this dataset, at a specific location, in a specific format. This property can be repeated if different variations are available. There is no expectation that different downloadable distributions must contain exactly equivalent information (see also [DCAT](https://www.w3.org/TR/vocab-dcat-3/#Class:Distribution) on this point). Different distributions might include or exclude different subsets of the entire dataset, for example.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'includedDataCatalog' => 'A data catalog which contains this dataset (this property was previously \'catalog\', preferred name is now \'includedInDataCatalog\').', + 'includedInDataCatalog' => 'A data catalog which contains this dataset.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'variableMeasured' => 'The variableMeasured property can indicate (repeated as necessary) the variables that are measured in some dataset, either described as text or as pairs of identifier and description using PropertyValue.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Date.php b/src/models/jsonld/Date.php index 44e0e767a..309651867 100644 --- a/src/models/jsonld/Date.php +++ b/src/models/jsonld/Date.php @@ -24,98 +24,98 @@ */ class Date extends MetaJsonLd implements DateInterface { - use DateTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Date'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Date'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A date value in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DateTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Date'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Date'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A date value in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DateTime.php b/src/models/jsonld/DateTime.php index fdff1e540..1fe5bd636 100644 --- a/src/models/jsonld/DateTime.php +++ b/src/models/jsonld/DateTime.php @@ -24,98 +24,98 @@ */ class DateTime extends MetaJsonLd implements DateTimeInterface { - use DateTimeTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DateTime'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DateTime'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A combination of date and time of day in the form [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] (see Chapter 5.4 of ISO 8601).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DateTimeTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DateTime'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DateTime'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A combination of date and time of day in the form [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] (see Chapter 5.4 of ISO 8601).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DatedMoneySpecification.php b/src/models/jsonld/DatedMoneySpecification.php index 64ebe2aa7..b5b98aa37 100644 --- a/src/models/jsonld/DatedMoneySpecification.php +++ b/src/models/jsonld/DatedMoneySpecification.php @@ -26,131 +26,131 @@ */ class DatedMoneySpecification extends MetaJsonLd implements DatedMoneySpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use DatedMoneySpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DatedMoneySpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DatedMoneySpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A DatedMoneySpecification represents monetary values with optional start and end dates. For example, this could represent an employee\'s salary over a specific period of time. __Note:__ This type has been superseded by [[MonetaryAmount]], use of that type is recommended.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'currency' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'currency' => 'The currency in which the monetary amount is expressed. 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".', - 'description' => 'A description of the item.', - '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.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DatedMoneySpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DatedMoneySpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DatedMoneySpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A DatedMoneySpecification represents monetary values with optional start and end dates. For example, this could represent an employee\'s salary over a specific period of time. __Note:__ This type has been superseded by [[MonetaryAmount]], use of that type is recommended.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'currency' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'currency' => 'The currency in which the monetary amount is expressed. 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".', + 'description' => 'A description of the item.', + '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.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DayOfWeek.php b/src/models/jsonld/DayOfWeek.php index 6d14fb61a..05f42a52e 100644 --- a/src/models/jsonld/DayOfWeek.php +++ b/src/models/jsonld/DayOfWeek.php @@ -28,125 +28,125 @@ */ class DayOfWeek extends MetaJsonLd implements DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DayOfWeek'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DayOfWeek'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "The day of the week, e.g. used to specify to which day the opening hours of an OpeningHoursSpecification refer.\n\nOriginally, URLs from [GoodRelations](http://purl.org/goodrelations/v1) were used (for [[Monday]], [[Tuesday]], [[Wednesday]], [[Thursday]], [[Friday]], [[Saturday]], [[Sunday]] plus a special entry for [[PublicHolidays]]); these have now been integrated directly into schema.org.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DayOfWeek'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DayOfWeek'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "The day of the week, e.g. used to specify to which day the opening hours of an OpeningHoursSpecification refer.\n\nOriginally, URLs from [GoodRelations](http://purl.org/goodrelations/v1) were used (for [[Monday]], [[Tuesday]], [[Wednesday]], [[Thursday]], [[Friday]], [[Saturday]], [[Sunday]] plus a special entry for [[PublicHolidays]]); these have now been integrated directly into schema.org.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DaySpa.php b/src/models/jsonld/DaySpa.php index 6bebe6083..57527aac9 100644 --- a/src/models/jsonld/DaySpa.php +++ b/src/models/jsonld/DaySpa.php @@ -23,331 +23,331 @@ */ class DaySpa extends MetaJsonLd implements DaySpaInterface, HealthAndBeautyBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use DaySpaTrait; - use HealthAndBeautyBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use DaySpaTrait; + use HealthAndBeautyBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DaySpa'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DaySpa'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DaySpa'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DaySpa'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A day spa.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A day spa.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DeactivateAction.php b/src/models/jsonld/DeactivateAction.php index 3cee1f4bc..8fda78a2c 100644 --- a/src/models/jsonld/DeactivateAction.php +++ b/src/models/jsonld/DeactivateAction.php @@ -24,147 +24,147 @@ */ class DeactivateAction extends MetaJsonLd implements DeactivateActionInterface, ControlActionInterface, ActionInterface, ThingInterface { - use DeactivateActionTrait; - use ControlActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DeactivateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DeactivateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of stopping or deactivating a device or application (e.g. stopping a timer or turning off a flashlight).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DeactivateActionTrait; + use ControlActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DeactivateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DeactivateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of stopping or deactivating a device or application (e.g. stopping a timer or turning off a flashlight).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DecontextualizedContent.php b/src/models/jsonld/DecontextualizedContent.php index 303dff12f..31476f423 100644 --- a/src/models/jsonld/DecontextualizedContent.php +++ b/src/models/jsonld/DecontextualizedContent.php @@ -42,126 +42,126 @@ */ class DecontextualizedContent extends MetaJsonLd implements DecontextualizedContentInterface, MediaManipulationRatingEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DecontextualizedContentTrait; - use MediaManipulationRatingEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DecontextualizedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DecontextualizedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Content coded 'missing context' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'missing context': Presenting unaltered video in an inaccurate manner that misrepresents the footage. For example, using incorrect dates or locations, altering the transcript or sharing brief clips from a longer video to mislead viewers. (A video rated 'original' can also be missing context.)\n\nFor an [[ImageObject]] to be 'missing context': Presenting unaltered images in an inaccurate manner to misrepresent the image and mislead the viewer. For example, a common tactic is using an unaltered image but saying it came from a different time or place. (An image rated 'original' can also be missing context.)\n\nFor an [[ImageObject]] with embedded text to be 'missing context': An unaltered image presented in an inaccurate manner to misrepresent the image and mislead the viewer. For example, a common tactic is using an unaltered image but saying it came from a different time or place. (An 'original' image with inaccurate text would generally fall in this category.)\n\nFor an [[AudioObject]] to be 'missing context': Unaltered audio presented in an inaccurate manner that misrepresents it. For example, using incorrect dates or locations, or sharing brief clips from a longer recording to mislead viewers. (Audio rated “original” can also be missing context.)"; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DecontextualizedContentTrait; + use MediaManipulationRatingEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DecontextualizedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DecontextualizedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Content coded 'missing context' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'missing context': Presenting unaltered video in an inaccurate manner that misrepresents the footage. For example, using incorrect dates or locations, altering the transcript or sharing brief clips from a longer video to mislead viewers. (A video rated 'original' can also be missing context.)\n\nFor an [[ImageObject]] to be 'missing context': Presenting unaltered images in an inaccurate manner to misrepresent the image and mislead the viewer. For example, a common tactic is using an unaltered image but saying it came from a different time or place. (An image rated 'original' can also be missing context.)\n\nFor an [[ImageObject]] with embedded text to be 'missing context': An unaltered image presented in an inaccurate manner to misrepresent the image and mislead the viewer. For example, a common tactic is using an unaltered image but saying it came from a different time or place. (An 'original' image with inaccurate text would generally fall in this category.)\n\nFor an [[AudioObject]] to be 'missing context': Unaltered audio presented in an inaccurate manner that misrepresents it. For example, using incorrect dates or locations, or sharing brief clips from a longer recording to mislead viewers. (Audio rated “original” can also be missing context.)"; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DefenceEstablishment.php b/src/models/jsonld/DefenceEstablishment.php index 3165287f6..914f71ec8 100644 --- a/src/models/jsonld/DefenceEstablishment.php +++ b/src/models/jsonld/DefenceEstablishment.php @@ -23,216 +23,216 @@ */ class DefenceEstablishment extends MetaJsonLd implements DefenceEstablishmentInterface, GovernmentBuildingInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use DefenceEstablishmentTrait; - use GovernmentBuildingTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DefenceEstablishment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DefenceEstablishment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A defence establishment, such as an army or navy base.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DefenceEstablishmentTrait; + use GovernmentBuildingTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DefenceEstablishment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DefenceEstablishment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A defence establishment, such as an army or navy base.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DefinedRegion.php b/src/models/jsonld/DefinedRegion.php index 0201c33a8..2e3ca9d13 100644 --- a/src/models/jsonld/DefinedRegion.php +++ b/src/models/jsonld/DefinedRegion.php @@ -30,133 +30,133 @@ */ class DefinedRegion extends MetaJsonLd implements DefinedRegionInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use DefinedRegionTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DefinedRegion'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DefinedRegion'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A DefinedRegion is a geographic area defined by potentially arbitrary (rather than political, administrative or natural geographical) criteria. Properties are provided for defining a region by reference to sets of postal codes.\n\nExamples: a delivery destination when shopping. Region where regional pricing is configured.\n\nRequirement 1:\nCountry: US\nStates: \"NY\", \"CA\"\n\nRequirement 2:\nCountry: US\nPostalCode Set: { [94000-94585], [97000, 97999], [13000, 13599]}\n{ [12345, 12345], [78945, 78945], }\nRegion = state, canton, prefecture, autonomous community..."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'addressCountry' => ['Country', 'Text'], - 'addressRegion' => ['Text'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'postalCode' => ['Text'], - 'postalCodePrefix' => ['Text'], - 'postalCodeRange' => ['PostalCodeRangeSpecification'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', - 'addressRegion' => 'The region in which the locality is, and which is in the country. For example, California or another appropriate first-level [Administrative division](https://en.wikipedia.org/wiki/List_of_administrative_divisions_by_country).', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'postalCode' => 'The postal code. For example, 94043.', - 'postalCodePrefix' => 'A defined range of postal codes indicated by a common textual prefix. Used for non-numeric systems such as UK.', - 'postalCodeRange' => 'A defined range of postal codes.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DefinedRegionTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DefinedRegion'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DefinedRegion'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A DefinedRegion is a geographic area defined by potentially arbitrary (rather than political, administrative or natural geographical) criteria. Properties are provided for defining a region by reference to sets of postal codes.\n\nExamples: a delivery destination when shopping. Region where regional pricing is configured.\n\nRequirement 1:\nCountry: US\nStates: \"NY\", \"CA\"\n\nRequirement 2:\nCountry: US\nPostalCode Set: { [94000-94585], [97000, 97999], [13000, 13599]}\n{ [12345, 12345], [78945, 78945], }\nRegion = state, canton, prefecture, autonomous community..."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'addressCountry' => ['Country', 'Text'], + 'addressRegion' => ['Text'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'postalCode' => ['Text'], + 'postalCodePrefix' => ['Text'], + 'postalCodeRange' => ['PostalCodeRangeSpecification'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', + 'addressRegion' => 'The region in which the locality is, and which is in the country. For example, California or another appropriate first-level [Administrative division](https://en.wikipedia.org/wiki/List_of_administrative_divisions_by_country).', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'postalCode' => 'The postal code. For example, 94043.', + 'postalCodePrefix' => 'A defined range of postal codes indicated by a common textual prefix. Used for non-numeric systems such as UK.', + 'postalCodeRange' => 'A defined range of postal codes.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DefinedTerm.php b/src/models/jsonld/DefinedTerm.php index 746ba6544..51b33496a 100644 --- a/src/models/jsonld/DefinedTerm.php +++ b/src/models/jsonld/DefinedTerm.php @@ -27,126 +27,126 @@ */ class DefinedTerm extends MetaJsonLd implements DefinedTermInterface, IntangibleInterface, ThingInterface { - use DefinedTermTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DefinedTerm'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DefinedTerm'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc. Use the name property for the term being defined, use termCode if the term has an alpha-numeric code allocated, use description to provide the definition of the term.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inDefinedTermSet' => ['DefinedTermSet', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termCode' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inDefinedTermSet' => 'A [[DefinedTermSet]] that contains this term.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termCode' => 'A code that identifies this [[DefinedTerm]] within a [[DefinedTermSet]]', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DefinedTermTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DefinedTerm'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DefinedTerm'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc. Use the name property for the term being defined, use termCode if the term has an alpha-numeric code allocated, use description to provide the definition of the term.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inDefinedTermSet' => ['DefinedTermSet', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termCode' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inDefinedTermSet' => 'A [[DefinedTermSet]] that contains this term.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termCode' => 'A code that identifies this [[DefinedTerm]] within a [[DefinedTermSet]]', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DefinedTermSet.php b/src/models/jsonld/DefinedTermSet.php index 650d8d4d9..96100150c 100644 --- a/src/models/jsonld/DefinedTermSet.php +++ b/src/models/jsonld/DefinedTermSet.php @@ -24,348 +24,348 @@ */ class DefinedTermSet extends MetaJsonLd implements DefinedTermSetInterface, CreativeWorkInterface, ThingInterface { - use DefinedTermSetTrait; - use CreativeWorkTrait; - use ThingTrait; + use DefinedTermSetTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DefinedTermSet'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DefinedTermSet'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DefinedTermSet'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DefinedTermSet'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of defined terms, for example a set of categories or a classification scheme, a glossary, dictionary or enumeration.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of defined terms, for example a set of categories or a classification scheme, a glossary, dictionary or enumeration.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasDefinedTerm' => ['DefinedTerm'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasDefinedTerm' => ['DefinedTerm'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasDefinedTerm' => 'A Defined Term contained in this term set.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasDefinedTerm' => 'A Defined Term contained in this term set.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DefinitiveLegalValue.php b/src/models/jsonld/DefinitiveLegalValue.php index 4da244d50..adb79c31a 100644 --- a/src/models/jsonld/DefinitiveLegalValue.php +++ b/src/models/jsonld/DefinitiveLegalValue.php @@ -26,126 +26,126 @@ */ class DefinitiveLegalValue extends MetaJsonLd implements DefinitiveLegalValueInterface, LegalValueLevelInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DefinitiveLegalValueTrait; - use LegalValueLevelTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DefinitiveLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DefinitiveLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Indicates a document for which the text is conclusively what the law says and is legally binding. (E.g. the digitally signed version of an Official Journal.)\n Something \"Definitive\" is considered to be also [[AuthoritativeLegalValue]]."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DefinitiveLegalValueTrait; + use LegalValueLevelTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DefinitiveLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DefinitiveLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Indicates a document for which the text is conclusively what the law says and is legally binding. (E.g. the digitally signed version of an Official Journal.)\n Something \"Definitive\" is considered to be also [[AuthoritativeLegalValue]]."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DeleteAction.php b/src/models/jsonld/DeleteAction.php index e0810e6a8..845196238 100644 --- a/src/models/jsonld/DeleteAction.php +++ b/src/models/jsonld/DeleteAction.php @@ -23,151 +23,151 @@ */ class DeleteAction extends MetaJsonLd implements DeleteActionInterface, UpdateActionInterface, ActionInterface, ThingInterface { - use DeleteActionTrait; - use UpdateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DeleteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DeleteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UpdateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of editing a recipient by removing one of its objects.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'collection' => ['Thing'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'targetCollection' => ['Thing'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'collection' => 'A sub property of object. The collection target of the action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'targetCollection' => 'A sub property of object. The collection target of the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DeleteActionTrait; + use UpdateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DeleteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DeleteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UpdateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of editing a recipient by removing one of its objects.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'collection' => ['Thing'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'targetCollection' => ['Thing'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'collection' => 'A sub property of object. The collection target of the action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'targetCollection' => 'A sub property of object. The collection target of the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DeliveryChargeSpecification.php b/src/models/jsonld/DeliveryChargeSpecification.php index bc7bb594f..249db1a44 100644 --- a/src/models/jsonld/DeliveryChargeSpecification.php +++ b/src/models/jsonld/DeliveryChargeSpecification.php @@ -23,150 +23,150 @@ */ class DeliveryChargeSpecification extends MetaJsonLd implements DeliveryChargeSpecificationInterface, PriceSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use DeliveryChargeSpecificationTrait; - use PriceSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DeliveryChargeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DeliveryChargeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The price for the delivery of an offer using a particular delivery method.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'appliesToDeliveryMethod' => ['DeliveryMethod'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxPrice' => ['Number'], - 'minPrice' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'valueAddedTaxIncluded' => ['Boolean'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'appliesToDeliveryMethod' => 'The delivery method(s) to which the delivery charge or payment charge specification applies.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'description' => 'A description of the item.', - '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.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - '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.', - 'maxPrice' => 'The highest price if the price is a range.', - 'minPrice' => 'The lowest price if the price is a range.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DeliveryChargeSpecificationTrait; + use PriceSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DeliveryChargeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DeliveryChargeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The price for the delivery of an offer using a particular delivery method.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'appliesToDeliveryMethod' => ['DeliveryMethod'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxPrice' => ['Number'], + 'minPrice' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'valueAddedTaxIncluded' => ['Boolean'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'appliesToDeliveryMethod' => 'The delivery method(s) to which the delivery charge or payment charge specification applies.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'description' => 'A description of the item.', + '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.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + '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.', + 'maxPrice' => 'The highest price if the price is a range.', + 'minPrice' => 'The lowest price if the price is a range.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DeliveryEvent.php b/src/models/jsonld/DeliveryEvent.php index 8f50213bb..5d431a410 100644 --- a/src/models/jsonld/DeliveryEvent.php +++ b/src/models/jsonld/DeliveryEvent.php @@ -23,212 +23,212 @@ */ class DeliveryEvent extends MetaJsonLd implements DeliveryEventInterface, EventInterface, ThingInterface { - use DeliveryEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DeliveryEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DeliveryEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An event involving the delivery of an item.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'accessCode' => ['Text'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'availableFrom' => ['DateTime'], - 'availableThrough' => ['DateTime'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'hasDeliveryMethod' => ['DeliveryMethod'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'accessCode' => 'Password, PIN, or access code needed for delivery (e.g. from a locker).', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableFrom' => 'When the item is available for pickup from the store, locker, etc.', - 'availableThrough' => 'After this date, the item will no longer be available for pickup.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'hasDeliveryMethod' => 'Method used for delivery or shipping.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DeliveryEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DeliveryEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DeliveryEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An event involving the delivery of an item.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'accessCode' => ['Text'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'availableFrom' => ['DateTime'], + 'availableThrough' => ['DateTime'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'hasDeliveryMethod' => ['DeliveryMethod'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'accessCode' => 'Password, PIN, or access code needed for delivery (e.g. from a locker).', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableFrom' => 'When the item is available for pickup from the store, locker, etc.', + 'availableThrough' => 'After this date, the item will no longer be available for pickup.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'hasDeliveryMethod' => 'Method used for delivery or shipping.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DeliveryMethod.php b/src/models/jsonld/DeliveryMethod.php index 08054420d..d4b2b7a32 100644 --- a/src/models/jsonld/DeliveryMethod.php +++ b/src/models/jsonld/DeliveryMethod.php @@ -35,125 +35,125 @@ */ class DeliveryMethod extends MetaJsonLd implements DeliveryMethodInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DeliveryMethodTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DeliveryMethod'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DeliveryMethod'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A delivery method is a standardized procedure for transferring the product or service to the destination of fulfillment chosen by the customer. Delivery methods are characterized by the means of transportation used, and by the organization or group that is the contracting party for the sending organization or person.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#DeliveryModeDirectDownload\\n* http://purl.org/goodrelations/v1#DeliveryModeFreight\\n* http://purl.org/goodrelations/v1#DeliveryModeMail\\n* http://purl.org/goodrelations/v1#DeliveryModeOwnFleet\\n* http://purl.org/goodrelations/v1#DeliveryModePickUp\\n* http://purl.org/goodrelations/v1#DHL\\n* http://purl.org/goodrelations/v1#FederalExpress\\n* http://purl.org/goodrelations/v1#UPS\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DeliveryMethodTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DeliveryMethod'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DeliveryMethod'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A delivery method is a standardized procedure for transferring the product or service to the destination of fulfillment chosen by the customer. Delivery methods are characterized by the means of transportation used, and by the organization or group that is the contracting party for the sending organization or person.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#DeliveryModeDirectDownload\\n* http://purl.org/goodrelations/v1#DeliveryModeFreight\\n* http://purl.org/goodrelations/v1#DeliveryModeMail\\n* http://purl.org/goodrelations/v1#DeliveryModeOwnFleet\\n* http://purl.org/goodrelations/v1#DeliveryModePickUp\\n* http://purl.org/goodrelations/v1#DHL\\n* http://purl.org/goodrelations/v1#FederalExpress\\n* http://purl.org/goodrelations/v1#UPS\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DeliveryTimeSettings.php b/src/models/jsonld/DeliveryTimeSettings.php index 12e952ed4..2f210071c 100644 --- a/src/models/jsonld/DeliveryTimeSettings.php +++ b/src/models/jsonld/DeliveryTimeSettings.php @@ -28,131 +28,131 @@ */ class DeliveryTimeSettings extends MetaJsonLd implements DeliveryTimeSettingsInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use DeliveryTimeSettingsTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DeliveryTimeSettings'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DeliveryTimeSettings'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A DeliveryTimeSettings represents re-usable pieces of shipping information, relating to timing. It is designed for publication on an URL that may be referenced via the [[shippingSettingsLink]] property of an [[OfferShippingDetails]]. Several occurrences can be published, distinguished (and identified/referenced) by their different values for [[transitTimeLabel]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'deliveryTime' => ['ShippingDeliveryTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isUnlabelledFallback' => ['Boolean'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'shippingDestination' => ['DefinedRegion'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'transitTimeLabel' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'deliveryTime' => 'The total delay between the receipt of the order and the goods reaching the final customer.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isUnlabelledFallback' => 'This can be marked \'true\' to indicate that some published [[DeliveryTimeSettings]] or [[ShippingRateSettings]] are intended to apply to all [[OfferShippingDetails]] published by the same merchant, when referenced by a [[shippingSettingsLink]] in those settings. It is not meaningful to use a \'true\' value for this property alongside a transitTimeLabel (for [[DeliveryTimeSettings]]) or shippingLabel (for [[ShippingRateSettings]]), since this property is for use with unlabelled settings.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'shippingDestination' => 'indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'transitTimeLabel' => 'Label to match an [[OfferShippingDetails]] with a [[DeliveryTimeSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DeliveryTimeSettingsTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DeliveryTimeSettings'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DeliveryTimeSettings'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A DeliveryTimeSettings represents re-usable pieces of shipping information, relating to timing. It is designed for publication on an URL that may be referenced via the [[shippingSettingsLink]] property of an [[OfferShippingDetails]]. Several occurrences can be published, distinguished (and identified/referenced) by their different values for [[transitTimeLabel]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'deliveryTime' => ['ShippingDeliveryTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isUnlabelledFallback' => ['Boolean'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'shippingDestination' => ['DefinedRegion'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'transitTimeLabel' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'deliveryTime' => 'The total delay between the receipt of the order and the goods reaching the final customer.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isUnlabelledFallback' => 'This can be marked \'true\' to indicate that some published [[DeliveryTimeSettings]] or [[ShippingRateSettings]] are intended to apply to all [[OfferShippingDetails]] published by the same merchant, when referenced by a [[shippingSettingsLink]] in those settings. It is not meaningful to use a \'true\' value for this property alongside a transitTimeLabel (for [[DeliveryTimeSettings]]) or shippingLabel (for [[ShippingRateSettings]]), since this property is for use with unlabelled settings.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'shippingDestination' => 'indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'transitTimeLabel' => 'Label to match an [[OfferShippingDetails]] with a [[DeliveryTimeSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Demand.php b/src/models/jsonld/Demand.php index d0546587e..4cbe1f1a2 100644 --- a/src/models/jsonld/Demand.php +++ b/src/models/jsonld/Demand.php @@ -26,190 +26,190 @@ */ class Demand extends MetaJsonLd implements DemandInterface, IntangibleInterface, ThingInterface { - use DemandTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Demand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Demand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A demand entity represents the public, not necessarily binding, not necessarily exclusive, announcement by an organization or person to seek a certain type of goods or services. For describing demand using this type, the very same properties used for Offer apply.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], - 'additionalType' => ['URL'], - 'advanceBookingRequirement' => ['QuantitativeValue'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'asin' => ['Text', 'URL'], - 'availability' => ['ItemAvailability'], - 'availabilityEnds' => ['DateTime', 'Time', 'Date'], - 'availabilityStarts' => ['Date', 'Time', 'DateTime'], - 'availableAtOrFrom' => ['Place'], - 'availableDeliveryMethod' => ['DeliveryMethod'], - 'businessFunction' => ['BusinessFunction'], - 'deliveryLeadTime' => ['QuantitativeValue'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleCustomerType' => ['BusinessEntityType'], - 'eligibleDuration' => ['QuantitativeValue'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includesObject' => ['TypeAndQuantityNode'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'inventoryLevel' => ['QuantitativeValue'], - 'itemCondition' => ['OfferItemCondition'], - 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceSpecification' => ['PriceSpecification'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'serialNumber' => ['Text'], - 'sku' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'warranty' => ['WarrantyPromise'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', - '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.', - 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', - 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', - 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', - 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', - 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', - 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', - 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', - 'description' => 'A description of the item.', - '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.', - 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', - 'eligibleDuration' => 'The duration for which the given offer is valid.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'inventoryLevel' => 'The current approximate inventory level for the item or items.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', - '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.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'warranty' => 'The warranty promise(s) included in the offer.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DemandTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Demand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Demand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A demand entity represents the public, not necessarily binding, not necessarily exclusive, announcement by an organization or person to seek a certain type of goods or services. For describing demand using this type, the very same properties used for Offer apply.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], + 'additionalType' => ['URL'], + 'advanceBookingRequirement' => ['QuantitativeValue'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'asin' => ['Text', 'URL'], + 'availability' => ['ItemAvailability'], + 'availabilityEnds' => ['DateTime', 'Time', 'Date'], + 'availabilityStarts' => ['Date', 'Time', 'DateTime'], + 'availableAtOrFrom' => ['Place'], + 'availableDeliveryMethod' => ['DeliveryMethod'], + 'businessFunction' => ['BusinessFunction'], + 'deliveryLeadTime' => ['QuantitativeValue'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleCustomerType' => ['BusinessEntityType'], + 'eligibleDuration' => ['QuantitativeValue'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includesObject' => ['TypeAndQuantityNode'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'inventoryLevel' => ['QuantitativeValue'], + 'itemCondition' => ['OfferItemCondition'], + 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceSpecification' => ['PriceSpecification'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'serialNumber' => ['Text'], + 'sku' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'warranty' => ['WarrantyPromise'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', + '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.', + 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', + 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', + 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', + 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', + 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', + 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', + 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', + 'description' => 'A description of the item.', + '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.', + 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', + 'eligibleDuration' => 'The duration for which the given offer is valid.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'inventoryLevel' => 'The current approximate inventory level for the item or items.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', + '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.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'warranty' => 'The warranty promise(s) included in the offer.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DemoAlbum.php b/src/models/jsonld/DemoAlbum.php index b2fb33fef..7aed782f8 100644 --- a/src/models/jsonld/DemoAlbum.php +++ b/src/models/jsonld/DemoAlbum.php @@ -23,126 +23,126 @@ */ class DemoAlbum extends MetaJsonLd implements DemoAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DemoAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DemoAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DemoAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'DemoAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DemoAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DemoAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DemoAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'DemoAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DemoGameAvailability.php b/src/models/jsonld/DemoGameAvailability.php index 4edabe21f..2f4648ff6 100644 --- a/src/models/jsonld/DemoGameAvailability.php +++ b/src/models/jsonld/DemoGameAvailability.php @@ -24,126 +24,126 @@ */ class DemoGameAvailability extends MetaJsonLd implements DemoGameAvailabilityInterface, GameAvailabilityEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DemoGameAvailabilityTrait; - use GameAvailabilityEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DemoGameAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DemoGameAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates demo game availability, i.e. a somehow limited demonstration of the full game.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DemoGameAvailabilityTrait; + use GameAvailabilityEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DemoGameAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DemoGameAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates demo game availability, i.e. a somehow limited demonstration of the full game.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Dentist.php b/src/models/jsonld/Dentist.php index 11a9a01b3..4a9e00894 100644 --- a/src/models/jsonld/Dentist.php +++ b/src/models/jsonld/Dentist.php @@ -23,338 +23,338 @@ */ class Dentist extends MetaJsonLd implements DentistInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalOrganizationInterface, MedicalBusinessInterface { - use DentistTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalOrganizationTrait; - use MedicalBusinessTrait; + use DentistTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalOrganizationTrait; + use MedicalBusinessTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Dentist'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Dentist'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Dentist'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Dentist'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A dentist.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A dentist.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Dentistry.php b/src/models/jsonld/Dentistry.php index cb80a6f53..090f1998c 100644 --- a/src/models/jsonld/Dentistry.php +++ b/src/models/jsonld/Dentistry.php @@ -23,128 +23,128 @@ */ class Dentistry extends MetaJsonLd implements DentistryInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use DentistryTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Dentistry'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Dentistry'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A branch of medicine that is involved in the dental care.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DentistryTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Dentistry'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Dentistry'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A branch of medicine that is involved in the dental care.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DepartAction.php b/src/models/jsonld/DepartAction.php index bf78761cc..329356c41 100644 --- a/src/models/jsonld/DepartAction.php +++ b/src/models/jsonld/DepartAction.php @@ -24,151 +24,151 @@ */ class DepartAction extends MetaJsonLd implements DepartActionInterface, MoveActionInterface, ActionInterface, ThingInterface { - use DepartActionTrait; - use MoveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DepartAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DepartAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MoveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of departing from a place. An agent departs from a fromLocation for a destination, optionally with participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DepartActionTrait; + use MoveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DepartAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DepartAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MoveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of departing from a place. An agent departs from a fromLocation for a destination, optionally with participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DepartmentStore.php b/src/models/jsonld/DepartmentStore.php index e9911807e..3e248f602 100644 --- a/src/models/jsonld/DepartmentStore.php +++ b/src/models/jsonld/DepartmentStore.php @@ -23,331 +23,331 @@ */ class DepartmentStore extends MetaJsonLd implements DepartmentStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use DepartmentStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use DepartmentStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DepartmentStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DepartmentStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DepartmentStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DepartmentStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A department store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A department store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DepositAccount.php b/src/models/jsonld/DepositAccount.php index 4ccbc0cdc..d8ee02b82 100644 --- a/src/models/jsonld/DepositAccount.php +++ b/src/models/jsonld/DepositAccount.php @@ -24,188 +24,188 @@ */ class DepositAccount extends MetaJsonLd implements DepositAccountInterface, BankAccountInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface, InvestmentOrDepositInterface { - use DepositAccountTrait; - use BankAccountTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - use InvestmentOrDepositTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DepositAccount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DepositAccount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BankAccount'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of Bank Account with a main purpose of depositing funds to gain interest or other benefits.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accountMinimumInflow' => ['MonetaryAmount'], - 'accountOverdraftLimit' => ['MonetaryAmount'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'bankAccountType' => ['Text', 'URL'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accountMinimumInflow' => 'A minimum amount that has to be paid in every month.', - 'accountOverdraftLimit' => 'An overdraft is an extension of credit from a lending institution when an account reaches zero. An overdraft allows the individual to continue withdrawing money even if the account has no funds in it. Basically the bank allows people to borrow a set amount of money.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'bankAccountType' => 'The type of a bank account.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DepositAccountTrait; + use BankAccountTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + use InvestmentOrDepositTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DepositAccount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DepositAccount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BankAccount'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of Bank Account with a main purpose of depositing funds to gain interest or other benefits.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accountMinimumInflow' => ['MonetaryAmount'], + 'accountOverdraftLimit' => ['MonetaryAmount'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'bankAccountType' => ['Text', 'URL'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accountMinimumInflow' => 'A minimum amount that has to be paid in every month.', + 'accountOverdraftLimit' => 'An overdraft is an extension of credit from a lending institution when an account reaches zero. An overdraft allows the individual to continue withdrawing money even if the account has no funds in it. Basically the bank allows people to borrow a set amount of money.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'bankAccountType' => 'The type of a bank account.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Dermatologic.php b/src/models/jsonld/Dermatologic.php index f516c53c6..9659d7e7e 100644 --- a/src/models/jsonld/Dermatologic.php +++ b/src/models/jsonld/Dermatologic.php @@ -23,128 +23,128 @@ */ class Dermatologic extends MetaJsonLd implements DermatologicInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use DermatologicTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Dermatologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Dermatologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Something relating to or practicing dermatology.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DermatologicTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Dermatologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Dermatologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Something relating to or practicing dermatology.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Dermatology.php b/src/models/jsonld/Dermatology.php index 41270ee57..2419bb213 100644 --- a/src/models/jsonld/Dermatology.php +++ b/src/models/jsonld/Dermatology.php @@ -24,338 +24,338 @@ */ class Dermatology extends MetaJsonLd implements DermatologyInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use DermatologyTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use DermatologyTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Dermatology'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Dermatology'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Dermatology'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Dermatology'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of skin.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of skin.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DesktopWebPlatform.php b/src/models/jsonld/DesktopWebPlatform.php index 24206f479..9336aa1c4 100644 --- a/src/models/jsonld/DesktopWebPlatform.php +++ b/src/models/jsonld/DesktopWebPlatform.php @@ -23,126 +23,126 @@ */ class DesktopWebPlatform extends MetaJsonLd implements DesktopWebPlatformInterface, DigitalPlatformEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DesktopWebPlatformTrait; - use DigitalPlatformEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DesktopWebPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DesktopWebPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the broad notion of \'desktop\' browsers as a Web Platform.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DesktopWebPlatformTrait; + use DigitalPlatformEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DesktopWebPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DesktopWebPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the broad notion of \'desktop\' browsers as a Web Platform.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DiabeticDiet.php b/src/models/jsonld/DiabeticDiet.php index a27cd6706..9cf89e57f 100644 --- a/src/models/jsonld/DiabeticDiet.php +++ b/src/models/jsonld/DiabeticDiet.php @@ -23,126 +23,126 @@ */ class DiabeticDiet extends MetaJsonLd implements DiabeticDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DiabeticDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DiabeticDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DiabeticDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet appropriate for people with diabetes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DiabeticDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DiabeticDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DiabeticDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet appropriate for people with diabetes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Diagnostic.php b/src/models/jsonld/Diagnostic.php index f9e99feed..c2090bbb4 100644 --- a/src/models/jsonld/Diagnostic.php +++ b/src/models/jsonld/Diagnostic.php @@ -23,127 +23,127 @@ */ class Diagnostic extends MetaJsonLd implements DiagnosticInterface, MedicalDevicePurposeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DiagnosticTrait; - use MedicalDevicePurposeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Diagnostic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Diagnostic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalDevicePurpose'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical device used for diagnostic purposes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DiagnosticTrait; + use MedicalDevicePurposeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Diagnostic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Diagnostic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalDevicePurpose'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical device used for diagnostic purposes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DiagnosticLab.php b/src/models/jsonld/DiagnosticLab.php index 1c50f3c52..f37153655 100644 --- a/src/models/jsonld/DiagnosticLab.php +++ b/src/models/jsonld/DiagnosticLab.php @@ -23,263 +23,263 @@ */ class DiagnosticLab extends MetaJsonLd implements DiagnosticLabInterface, MedicalOrganizationInterface, OrganizationInterface, ThingInterface { - use DiagnosticLabTrait; - use MedicalOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use DiagnosticLabTrait; + use MedicalOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DiagnosticLab'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DiagnosticLab'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DiagnosticLab'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DiagnosticLab'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical laboratory that offers on-site or off-site diagnostic services.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical laboratory that offers on-site or off-site diagnostic services.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'availableTest' => ['MedicalTest'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'availableTest' => ['MedicalTest'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'availableTest' => 'A diagnostic test or procedure offered by this lab.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'availableTest' => 'A diagnostic test or procedure offered by this lab.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DiagnosticProcedure.php b/src/models/jsonld/DiagnosticProcedure.php index 22996f0f3..daacc968b 100644 --- a/src/models/jsonld/DiagnosticProcedure.php +++ b/src/models/jsonld/DiagnosticProcedure.php @@ -24,151 +24,151 @@ */ class DiagnosticProcedure extends MetaJsonLd implements DiagnosticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use DiagnosticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DiagnosticProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DiagnosticProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical procedure intended primarily for diagnostic, as opposed to therapeutic, purposes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DiagnosticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DiagnosticProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DiagnosticProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical procedure intended primarily for diagnostic, as opposed to therapeutic, purposes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Diet.php b/src/models/jsonld/Diet.php index d7d611347..e820eb97c 100644 --- a/src/models/jsonld/Diet.php +++ b/src/models/jsonld/Diet.php @@ -24,372 +24,372 @@ */ class Diet extends MetaJsonLd implements DietInterface, CreativeWorkInterface, ThingInterface, LifestyleModificationInterface, MedicalEntityInterface { - use DietTrait; - use CreativeWorkTrait; - use ThingTrait; - use LifestyleModificationTrait; - use MedicalEntityTrait; + use DietTrait; + use CreativeWorkTrait; + use ThingTrait; + use LifestyleModificationTrait; + use MedicalEntityTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Diet'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Diet'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Diet'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Diet'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A strategy of regulating the intake of food to achieve or maintain a specific health-related goal.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A strategy of regulating the intake of food to achieve or maintain a specific health-related goal.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'code' => ['MedicalCode'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'dietFeatures' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endorsers' => ['Person', 'Organization'], - 'exampleOfWork' => ['CreativeWork'], - 'expertConsiderations' => ['Text'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'guideline' => ['MedicalGuideline'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'medicineSystem' => ['MedicineSystem'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'physiologicalBenefits' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recognizingAuthority' => ['Organization'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'risks' => ['Text'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'code' => ['MedicalCode'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'dietFeatures' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endorsers' => ['Person', 'Organization'], + 'exampleOfWork' => ['CreativeWork'], + 'expertConsiderations' => ['Text'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'guideline' => ['MedicalGuideline'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'medicineSystem' => ['MedicineSystem'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'physiologicalBenefits' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recognizingAuthority' => ['Organization'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'risks' => ['Text'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'dietFeatures' => 'Nutritional information specific to the dietary plan. May include dietary recommendations on what foods to avoid, what foods to consume, and specific alterations/deviations from the USDA or other regulatory body\'s approved dietary guidelines.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endorsers' => 'People or organizations that endorse the plan.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expertConsiderations' => 'Medical expert advice related to the plan.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'guideline' => 'A medical guideline related to this entity.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'physiologicalBenefits' => 'Specific physiologic benefits associated to the plan.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - 'risks' => 'Specific physiologic risks associated to the diet plan.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'dietFeatures' => 'Nutritional information specific to the dietary plan. May include dietary recommendations on what foods to avoid, what foods to consume, and specific alterations/deviations from the USDA or other regulatory body\'s approved dietary guidelines.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endorsers' => 'People or organizations that endorse the plan.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expertConsiderations' => 'Medical expert advice related to the plan.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'guideline' => 'A medical guideline related to this entity.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'physiologicalBenefits' => 'Specific physiologic benefits associated to the plan.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + 'risks' => 'Specific physiologic risks associated to the diet plan.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DietNutrition.php b/src/models/jsonld/DietNutrition.php index 8645b229a..648845421 100644 --- a/src/models/jsonld/DietNutrition.php +++ b/src/models/jsonld/DietNutrition.php @@ -23,338 +23,338 @@ */ class DietNutrition extends MetaJsonLd implements DietNutritionInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use DietNutritionTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use DietNutritionTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DietNutrition'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DietNutrition'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DietNutrition'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DietNutrition'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Dietetics and nutrition as a medical specialty.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Dietetics and nutrition as a medical specialty.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DietarySupplement.php b/src/models/jsonld/DietarySupplement.php index 3e2ba6ede..6cfe12398 100644 --- a/src/models/jsonld/DietarySupplement.php +++ b/src/models/jsonld/DietarySupplement.php @@ -26,266 +26,266 @@ */ class DietarySupplement extends MetaJsonLd implements DietarySupplementInterface, ProductInterface, ThingInterface, SubstanceInterface, MedicalEntityInterface { - use DietarySupplementTrait; - use ProductTrait; - use ThingTrait; - use SubstanceTrait; - use MedicalEntityTrait; + use DietarySupplementTrait; + use ProductTrait; + use ThingTrait; + use SubstanceTrait; + use MedicalEntityTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DietarySupplement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DietarySupplement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DietarySupplement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DietarySupplement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A product taken by mouth that contains a dietary ingredient intended to supplement the diet. Dietary ingredients may include vitamins, minerals, herbs or other botanicals, amino acids, and substances such as enzymes, organ tissues, glandulars and metabolites.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A product taken by mouth that contains a dietary ingredient intended to supplement the diet. Dietary ingredients may include vitamins, minerals, herbs or other botanicals, amino acids, and substances such as enzymes, organ tissues, glandulars and metabolites.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'activeIngredient' => ['Text'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'code' => ['MedicalCode'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'guideline' => ['MedicalGuideline'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isProprietary' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'maximumIntake' => ['MaximumDoseSchedule'], - 'mechanismOfAction' => ['Text'], - 'medicineSystem' => ['MedicineSystem'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nonProprietaryName' => ['Text'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'proprietaryName' => ['Text'], - 'purchaseDate' => ['Date'], - 'recognizingAuthority' => ['Organization'], - 'recommendedIntake' => ['RecommendedDoseSchedule'], - 'releaseDate' => ['Date'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'safetyConsideration' => ['Text'], - 'sameAs' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetPopulation' => ['Text'], - 'url' => ['URL'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'activeIngredient' => ['Text'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'code' => ['MedicalCode'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'guideline' => ['MedicalGuideline'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isProprietary' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'maximumIntake' => ['MaximumDoseSchedule'], + 'mechanismOfAction' => ['Text'], + 'medicineSystem' => ['MedicineSystem'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nonProprietaryName' => ['Text'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'proprietaryName' => ['Text'], + 'purchaseDate' => ['Date'], + 'recognizingAuthority' => ['Organization'], + 'recommendedIntake' => ['RecommendedDoseSchedule'], + 'releaseDate' => ['Date'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'safetyConsideration' => ['Text'], + 'sameAs' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetPopulation' => ['Text'], + 'url' => ['URL'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'guideline' => 'A medical guideline related to this entity.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isProprietary' => 'True if this item\'s name is a proprietary/brand name (vs. generic name).', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', - 'mechanismOfAction' => 'The specific biochemical interaction through which this drug or supplement produces its pharmacological effect.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nonProprietaryName' => 'The generic name of this drug or supplement.', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'proprietaryName' => 'Proprietary name given to the diet plan, typically by its originator or creator.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'recommendedIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - 'safetyConsideration' => 'Any potential safety concern associated with the supplement. May include interactions with other drugs and foods, pregnancy, breastfeeding, known adverse reactions, and documented efficacy of the supplement.', - '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.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', - 'url' => 'URL of the item.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'guideline' => 'A medical guideline related to this entity.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isProprietary' => 'True if this item\'s name is a proprietary/brand name (vs. generic name).', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', + 'mechanismOfAction' => 'The specific biochemical interaction through which this drug or supplement produces its pharmacological effect.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nonProprietaryName' => 'The generic name of this drug or supplement.', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'proprietaryName' => 'Proprietary name given to the diet plan, typically by its originator or creator.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'recommendedIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + 'safetyConsideration' => 'Any potential safety concern associated with the supplement. May include interactions with other drugs and foods, pregnancy, breastfeeding, known adverse reactions, and documented efficacy of the supplement.', + '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.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', + 'url' => 'URL of the item.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DigitalAudioTapeFormat.php b/src/models/jsonld/DigitalAudioTapeFormat.php index ce4a5d685..74556c8ac 100644 --- a/src/models/jsonld/DigitalAudioTapeFormat.php +++ b/src/models/jsonld/DigitalAudioTapeFormat.php @@ -23,126 +23,126 @@ */ class DigitalAudioTapeFormat extends MetaJsonLd implements DigitalAudioTapeFormatInterface, MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DigitalAudioTapeFormatTrait; - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DigitalAudioTapeFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DigitalAudioTapeFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'DigitalAudioTapeFormat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DigitalAudioTapeFormatTrait; + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DigitalAudioTapeFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DigitalAudioTapeFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'DigitalAudioTapeFormat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DigitalDocument.php b/src/models/jsonld/DigitalDocument.php index 1713480ff..9276a451c 100644 --- a/src/models/jsonld/DigitalDocument.php +++ b/src/models/jsonld/DigitalDocument.php @@ -23,348 +23,348 @@ */ class DigitalDocument extends MetaJsonLd implements DigitalDocumentInterface, CreativeWorkInterface, ThingInterface { - use DigitalDocumentTrait; - use CreativeWorkTrait; - use ThingTrait; + use DigitalDocumentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An electronic file or document.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An electronic file or document.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DigitalDocumentPermission.php b/src/models/jsonld/DigitalDocumentPermission.php index 1d3320430..c9b420c73 100644 --- a/src/models/jsonld/DigitalDocumentPermission.php +++ b/src/models/jsonld/DigitalDocumentPermission.php @@ -23,126 +23,126 @@ */ class DigitalDocumentPermission extends MetaJsonLd implements DigitalDocumentPermissionInterface, IntangibleInterface, ThingInterface { - use DigitalDocumentPermissionTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DigitalDocumentPermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DigitalDocumentPermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A permission for a particular person or group to access a particular file.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'grantee' => ['Audience', 'Organization', 'ContactPoint', 'Person'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'permissionType' => ['DigitalDocumentPermissionType'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'grantee' => 'The person, organization, contact point, or audience that has been granted this permission.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'permissionType' => 'The type of permission granted the person, organization, or audience.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DigitalDocumentPermissionTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DigitalDocumentPermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DigitalDocumentPermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A permission for a particular person or group to access a particular file.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'grantee' => ['Audience', 'Organization', 'ContactPoint', 'Person'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'permissionType' => ['DigitalDocumentPermissionType'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'grantee' => 'The person, organization, contact point, or audience that has been granted this permission.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'permissionType' => 'The type of permission granted the person, organization, or audience.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DigitalDocumentPermissionType.php b/src/models/jsonld/DigitalDocumentPermissionType.php index 1585d6c8e..f5bf97b54 100644 --- a/src/models/jsonld/DigitalDocumentPermissionType.php +++ b/src/models/jsonld/DigitalDocumentPermissionType.php @@ -23,125 +23,125 @@ */ class DigitalDocumentPermissionType extends MetaJsonLd implements DigitalDocumentPermissionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DigitalDocumentPermissionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of permission which can be granted for accessing a digital document.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DigitalDocumentPermissionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of permission which can be granted for accessing a digital document.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DigitalFormat.php b/src/models/jsonld/DigitalFormat.php index c138f4fda..fba29167b 100644 --- a/src/models/jsonld/DigitalFormat.php +++ b/src/models/jsonld/DigitalFormat.php @@ -23,126 +23,126 @@ */ class DigitalFormat extends MetaJsonLd implements DigitalFormatInterface, MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DigitalFormatTrait; - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DigitalFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DigitalFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'DigitalFormat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DigitalFormatTrait; + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DigitalFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DigitalFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'DigitalFormat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DigitalPlatformEnumeration.php b/src/models/jsonld/DigitalPlatformEnumeration.php index a02dad7a8..32f776c44 100644 --- a/src/models/jsonld/DigitalPlatformEnumeration.php +++ b/src/models/jsonld/DigitalPlatformEnumeration.php @@ -28,125 +28,125 @@ */ class DigitalPlatformEnumeration extends MetaJsonLd implements DigitalPlatformEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DigitalPlatformEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates some common technology platforms, for use with properties such as [[actionPlatform]]. It is not supposed to be comprehensive - when a suitable code is not enumerated here, textual or URL values can be used instead. These codes are at a fairly high level and do not deal with versioning and other nuance. Additional codes can be suggested [in github](https://github.com/schemaorg/schemaorg/issues/3057). '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DigitalPlatformEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates some common technology platforms, for use with properties such as [[actionPlatform]]. It is not supposed to be comprehensive - when a suitable code is not enumerated here, textual or URL values can be used instead. These codes are at a fairly high level and do not deal with versioning and other nuance. Additional codes can be suggested [in github](https://github.com/schemaorg/schemaorg/issues/3057). '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DisabilitySupport.php b/src/models/jsonld/DisabilitySupport.php index 8565f35ec..1e46f6480 100644 --- a/src/models/jsonld/DisabilitySupport.php +++ b/src/models/jsonld/DisabilitySupport.php @@ -23,126 +23,126 @@ */ class DisabilitySupport extends MetaJsonLd implements DisabilitySupportInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DisabilitySupportTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DisabilitySupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DisabilitySupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'DisabilitySupport: this is a benefit for disability support.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DisabilitySupportTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DisabilitySupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DisabilitySupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'DisabilitySupport: this is a benefit for disability support.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DisagreeAction.php b/src/models/jsonld/DisagreeAction.php index da26922af..d08fc8770 100644 --- a/src/models/jsonld/DisagreeAction.php +++ b/src/models/jsonld/DisagreeAction.php @@ -25,148 +25,148 @@ */ class DisagreeAction extends MetaJsonLd implements DisagreeActionInterface, ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use DisagreeActionTrait; - use ReactActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DisagreeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DisagreeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of expressing a difference of opinion with the object. An agent disagrees to/about an object (a proposition, topic or theme) with participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DisagreeActionTrait; + use ReactActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DisagreeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DisagreeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of expressing a difference of opinion with the object. An agent disagrees to/about an object (a proposition, topic or theme) with participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Discontinued.php b/src/models/jsonld/Discontinued.php index 9eaf8c242..0bbbff2ae 100644 --- a/src/models/jsonld/Discontinued.php +++ b/src/models/jsonld/Discontinued.php @@ -23,126 +23,126 @@ */ class Discontinued extends MetaJsonLd implements DiscontinuedInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DiscontinuedTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Discontinued'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Discontinued'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item has been discontinued.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DiscontinuedTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Discontinued'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Discontinued'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item has been discontinued.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DiscoverAction.php b/src/models/jsonld/DiscoverAction.php index cae125f73..80e82d757 100644 --- a/src/models/jsonld/DiscoverAction.php +++ b/src/models/jsonld/DiscoverAction.php @@ -23,147 +23,147 @@ */ class DiscoverAction extends MetaJsonLd implements DiscoverActionInterface, FindActionInterface, ActionInterface, ThingInterface { - use DiscoverActionTrait; - use FindActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DiscoverAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DiscoverAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FindAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of discovering/finding an object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DiscoverActionTrait; + use FindActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DiscoverAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DiscoverAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FindAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of discovering/finding an object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DiscussionForumPosting.php b/src/models/jsonld/DiscussionForumPosting.php index b47a2ac88..1d076d733 100644 --- a/src/models/jsonld/DiscussionForumPosting.php +++ b/src/models/jsonld/DiscussionForumPosting.php @@ -23,366 +23,366 @@ */ class DiscussionForumPosting extends MetaJsonLd implements DiscussionForumPostingInterface, SocialMediaPostingInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use DiscussionForumPostingTrait; - use SocialMediaPostingTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use DiscussionForumPostingTrait; + use SocialMediaPostingTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DiscussionForumPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DiscussionForumPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DiscussionForumPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DiscussionForumPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SocialMediaPosting'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SocialMediaPosting'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A posting to a discussion forum.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A posting to a discussion forum.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sharedContent' => ['CreativeWork'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sharedContent' => ['CreativeWork'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DislikeAction.php b/src/models/jsonld/DislikeAction.php index 3cb171704..a20dfe3d7 100644 --- a/src/models/jsonld/DislikeAction.php +++ b/src/models/jsonld/DislikeAction.php @@ -24,148 +24,148 @@ */ class DislikeAction extends MetaJsonLd implements DislikeActionInterface, ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use DislikeActionTrait; - use ReactActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DislikeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DislikeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of expressing a negative sentiment about the object. An agent dislikes an object (a proposition, topic or theme) with participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DislikeActionTrait; + use ReactActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DislikeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DislikeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of expressing a negative sentiment about the object. An agent dislikes an object (a proposition, topic or theme) with participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Distance.php b/src/models/jsonld/Distance.php index 5c0310512..5f22b619a 100644 --- a/src/models/jsonld/Distance.php +++ b/src/models/jsonld/Distance.php @@ -24,123 +24,123 @@ */ class Distance extends MetaJsonLd implements DistanceInterface, QuantityInterface, IntangibleInterface, ThingInterface { - use DistanceTrait; - use QuantityTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Distance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Distance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Properties that take Distances as values are of the form \' \'. E.g., \'7 ft\'.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DistanceTrait; + use QuantityTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Distance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Distance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Properties that take Distances as values are of the form \' \'. E.g., \'7 ft\'.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DistanceFee.php b/src/models/jsonld/DistanceFee.php index ad505260b..03aca12e5 100644 --- a/src/models/jsonld/DistanceFee.php +++ b/src/models/jsonld/DistanceFee.php @@ -24,126 +24,126 @@ */ class DistanceFee extends MetaJsonLd implements DistanceFeeInterface, PriceComponentTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DistanceFeeTrait; - use PriceComponentTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DistanceFee'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DistanceFee'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the distance fee (e.g., price per km or mile) part of the total price for an offered product, for example a car rental.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DistanceFeeTrait; + use PriceComponentTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DistanceFee'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DistanceFee'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the distance fee (e.g., price per km or mile) part of the total price for an offered product, for example a car rental.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Distillery.php b/src/models/jsonld/Distillery.php index 6ad65599e..b19f5391f 100644 --- a/src/models/jsonld/Distillery.php +++ b/src/models/jsonld/Distillery.php @@ -23,341 +23,341 @@ */ class Distillery extends MetaJsonLd implements DistilleryInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use DistilleryTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use DistilleryTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Distillery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Distillery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Distillery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Distillery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A distillery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A distillery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DonateAction.php b/src/models/jsonld/DonateAction.php index 93f2293f0..e1a9204e4 100644 --- a/src/models/jsonld/DonateAction.php +++ b/src/models/jsonld/DonateAction.php @@ -24,155 +24,155 @@ */ class DonateAction extends MetaJsonLd implements DonateActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use DonateActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DonateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DonateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of providing goods, services, or money without compensation, often for philanthropic reasons.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DonateActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DonateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DonateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of providing goods, services, or money without compensation, often for philanthropic reasons.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DoseSchedule.php b/src/models/jsonld/DoseSchedule.php index 534f70d2d..056bd4e91 100644 --- a/src/models/jsonld/DoseSchedule.php +++ b/src/models/jsonld/DoseSchedule.php @@ -23,147 +23,147 @@ */ class DoseSchedule extends MetaJsonLd implements DoseScheduleInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use DoseScheduleTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific dosing schedule for a drug or supplement.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseUnit' => ['Text'], - 'doseValue' => ['Number', 'QualitativeValue'], - 'frequency' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetPopulation' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', - 'doseValue' => 'The value of the dose, e.g. 500.', - 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DoseScheduleTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific dosing schedule for a drug or supplement.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseUnit' => ['Text'], + 'doseValue' => ['Number', 'QualitativeValue'], + 'frequency' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetPopulation' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', + 'doseValue' => 'The value of the dose, e.g. 500.', + 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DoubleBlindedTrial.php b/src/models/jsonld/DoubleBlindedTrial.php index 7482ef1dd..91714161b 100644 --- a/src/models/jsonld/DoubleBlindedTrial.php +++ b/src/models/jsonld/DoubleBlindedTrial.php @@ -24,127 +24,127 @@ */ class DoubleBlindedTrial extends MetaJsonLd implements DoubleBlindedTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DoubleBlindedTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DoubleBlindedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DoubleBlindedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trial design in which neither the researcher nor the patient knows the details of the treatment the patient was randomly assigned to.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DoubleBlindedTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DoubleBlindedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DoubleBlindedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trial design in which neither the researcher nor the patient knows the details of the treatment the patient was randomly assigned to.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DownloadAction.php b/src/models/jsonld/DownloadAction.php index ad71ba7ce..f9068416e 100644 --- a/src/models/jsonld/DownloadAction.php +++ b/src/models/jsonld/DownloadAction.php @@ -23,151 +23,151 @@ */ class DownloadAction extends MetaJsonLd implements DownloadActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use DownloadActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DownloadAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DownloadAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of downloading an object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DownloadActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DownloadAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DownloadAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of downloading an object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Downpayment.php b/src/models/jsonld/Downpayment.php index 345effa27..5219f8c15 100644 --- a/src/models/jsonld/Downpayment.php +++ b/src/models/jsonld/Downpayment.php @@ -24,126 +24,126 @@ */ class Downpayment extends MetaJsonLd implements DownpaymentInterface, PriceComponentTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DownpaymentTrait; - use PriceComponentTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Downpayment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Downpayment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the downpayment (up-front payment) price component of the total price for an offered product that has additional installment payments.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DownpaymentTrait; + use PriceComponentTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Downpayment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Downpayment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the downpayment (up-front payment) price component of the total price for an offered product that has additional installment payments.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrawAction.php b/src/models/jsonld/DrawAction.php index 51580d46f..dfba79ef3 100644 --- a/src/models/jsonld/DrawAction.php +++ b/src/models/jsonld/DrawAction.php @@ -24,147 +24,147 @@ */ class DrawAction extends MetaJsonLd implements DrawActionInterface, CreateActionInterface, ActionInterface, ThingInterface { - use DrawActionTrait; - use CreateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrawAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrawAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of producing a visual/graphical representation of an object, typically with a pen/pencil and paper as instruments.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrawActionTrait; + use CreateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrawAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrawAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of producing a visual/graphical representation of an object, typically with a pen/pencil and paper as instruments.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Drawing.php b/src/models/jsonld/Drawing.php index ee7b4b3db..d7d2468bf 100644 --- a/src/models/jsonld/Drawing.php +++ b/src/models/jsonld/Drawing.php @@ -23,346 +23,346 @@ */ class Drawing extends MetaJsonLd implements DrawingInterface, CreativeWorkInterface, ThingInterface { - use DrawingTrait; - use CreativeWorkTrait; - use ThingTrait; + use DrawingTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Drawing'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Drawing'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Drawing'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Drawing'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A picture or diagram made with a pencil, pen, or crayon rather than paint.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A picture or diagram made with a pencil, pen, or crayon rather than paint.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DrinkAction.php b/src/models/jsonld/DrinkAction.php index f93203291..be649d0a9 100644 --- a/src/models/jsonld/DrinkAction.php +++ b/src/models/jsonld/DrinkAction.php @@ -23,151 +23,151 @@ */ class DrinkAction extends MetaJsonLd implements DrinkActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use DrinkActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrinkAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrinkAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of swallowing liquids.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrinkActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrinkAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrinkAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of swallowing liquids.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DriveWheelConfigurationValue.php b/src/models/jsonld/DriveWheelConfigurationValue.php index 8586677f9..19188cc59 100644 --- a/src/models/jsonld/DriveWheelConfigurationValue.php +++ b/src/models/jsonld/DriveWheelConfigurationValue.php @@ -23,142 +23,142 @@ */ class DriveWheelConfigurationValue extends MetaJsonLd implements DriveWheelConfigurationValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DriveWheelConfigurationValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A value indicating which roadwheels will receive torque.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DriveWheelConfigurationValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A value indicating which roadwheels will receive torque.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrivingSchoolVehicleUsage.php b/src/models/jsonld/DrivingSchoolVehicleUsage.php index b533ea932..f16b52bb8 100644 --- a/src/models/jsonld/DrivingSchoolVehicleUsage.php +++ b/src/models/jsonld/DrivingSchoolVehicleUsage.php @@ -23,126 +23,126 @@ */ class DrivingSchoolVehicleUsage extends MetaJsonLd implements DrivingSchoolVehicleUsageInterface, CarUsageTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DrivingSchoolVehicleUsageTrait; - use CarUsageTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrivingSchoolVehicleUsage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrivingSchoolVehicleUsage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CarUsageType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates the usage of the vehicle for driving school.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrivingSchoolVehicleUsageTrait; + use CarUsageTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrivingSchoolVehicleUsage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrivingSchoolVehicleUsage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CarUsageType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates the usage of the vehicle for driving school.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Drug.php b/src/models/jsonld/Drug.php index 547a5bcf0..7c07207bb 100644 --- a/src/models/jsonld/Drug.php +++ b/src/models/jsonld/Drug.php @@ -26,306 +26,306 @@ */ class Drug extends MetaJsonLd implements DrugInterface, ProductInterface, ThingInterface, SubstanceInterface, MedicalEntityInterface { - use DrugTrait; - use ProductTrait; - use ThingTrait; - use SubstanceTrait; - use MedicalEntityTrait; + use DrugTrait; + use ProductTrait; + use ThingTrait; + use SubstanceTrait; + use MedicalEntityTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Drug'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Drug'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Drug'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Drug'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A chemical or biologic substance, used as a medical therapy, that has a physiological effect on an organism. Here the term drug is used interchangeably with the term medicine although clinical knowledge makes a clear difference between them.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A chemical or biologic substance, used as a medical therapy, that has a physiological effect on an organism. Here the term drug is used interchangeably with the term medicine although clinical knowledge makes a clear difference between them.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'activeIngredient' => ['Text'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'administrationRoute' => ['Text'], - 'aggregateRating' => ['AggregateRating'], - 'alcoholWarning' => ['Text'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'availableStrength' => ['DrugStrength'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'breastfeedingWarning' => ['Text'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'clincalPharmacology' => ['Text'], - 'clinicalPharmacology' => ['Text'], - 'code' => ['MedicalCode'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dosageForm' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drugClass' => ['DrugClass'], - 'drugUnit' => ['Text'], - 'foodWarning' => ['Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'guideline' => ['MedicalGuideline'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'includedInHealthInsurancePlan' => ['HealthInsurancePlan'], - 'interactingDrug' => ['Drug'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isAvailableGenerically' => ['Boolean'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isProprietary' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'labelDetails' => ['URL'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'maximumIntake' => ['MaximumDoseSchedule'], - 'mechanismOfAction' => ['Text'], - 'medicineSystem' => ['MedicineSystem'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nonProprietaryName' => ['Text'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'overdosage' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'pregnancyCategory' => ['DrugPregnancyCategory'], - 'pregnancyWarning' => ['Text'], - 'prescribingInfo' => ['URL'], - 'prescriptionStatus' => ['Text', 'DrugPrescriptionStatus'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'proprietaryName' => ['Text'], - 'purchaseDate' => ['Date'], - 'recognizingAuthority' => ['Organization'], - 'relatedDrug' => ['Drug'], - 'releaseDate' => ['Date'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'rxcui' => ['Text'], - 'sameAs' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'warning' => ['Text', 'URL'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'activeIngredient' => ['Text'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'administrationRoute' => ['Text'], + 'aggregateRating' => ['AggregateRating'], + 'alcoholWarning' => ['Text'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'availableStrength' => ['DrugStrength'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'breastfeedingWarning' => ['Text'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'clincalPharmacology' => ['Text'], + 'clinicalPharmacology' => ['Text'], + 'code' => ['MedicalCode'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dosageForm' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drugClass' => ['DrugClass'], + 'drugUnit' => ['Text'], + 'foodWarning' => ['Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'guideline' => ['MedicalGuideline'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'includedInHealthInsurancePlan' => ['HealthInsurancePlan'], + 'interactingDrug' => ['Drug'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isAvailableGenerically' => ['Boolean'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isProprietary' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'labelDetails' => ['URL'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'maximumIntake' => ['MaximumDoseSchedule'], + 'mechanismOfAction' => ['Text'], + 'medicineSystem' => ['MedicineSystem'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nonProprietaryName' => ['Text'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'overdosage' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'pregnancyCategory' => ['DrugPregnancyCategory'], + 'pregnancyWarning' => ['Text'], + 'prescribingInfo' => ['URL'], + 'prescriptionStatus' => ['Text', 'DrugPrescriptionStatus'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'proprietaryName' => ['Text'], + 'purchaseDate' => ['Date'], + 'recognizingAuthority' => ['Organization'], + 'relatedDrug' => ['Drug'], + 'releaseDate' => ['Date'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'rxcui' => ['Text'], + 'sameAs' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'warning' => ['Text', 'URL'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', - '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. ', - '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.', - 'administrationRoute' => 'A route by which this drug may be administered, e.g. \'oral\'.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alcoholWarning' => 'Any precaution, guidance, contraindication, etc. related to consumption of alcohol while taking this drug.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableStrength' => 'An available dosage strength for the drug.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'breastfeedingWarning' => 'Any precaution, guidance, contraindication, etc. related to this drug\'s use by breastfeeding mothers.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'clincalPharmacology' => 'Description of the absorption and elimination of drugs, including their concentration (pharmacokinetics, pK) and biological effects (pharmacodynamics, pD).', - 'clinicalPharmacology' => 'Description of the absorption and elimination of drugs, including their concentration (pharmacokinetics, pK) and biological effects (pharmacodynamics, pD).', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'dosageForm' => 'A dosage form in which this drug/supplement is available, e.g. \'tablet\', \'suspension\', \'injection\'.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drugClass' => 'The class of drug this belongs to (e.g., statins).', - 'drugUnit' => 'The unit in which the drug is measured, e.g. \'5 mg tablet\'.', - 'foodWarning' => 'Any precaution, guidance, contraindication, etc. related to consumption of specific foods while taking this drug.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'guideline' => 'A medical guideline related to this entity.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'includedInHealthInsurancePlan' => 'The insurance plans that cover this drug.', - 'interactingDrug' => 'Another drug that is known to interact with this drug in a way that impacts the effect of this drug or causes a risk to the patient. Note: disease interactions are typically captured as contraindications.', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isAvailableGenerically' => 'True if the drug is available in a generic form (regardless of name).', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isProprietary' => 'True if this item\'s name is a proprietary/brand name (vs. generic name).', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'labelDetails' => 'Link to the drug\'s label details.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', - 'mechanismOfAction' => 'The specific biochemical interaction through which this drug or supplement produces its pharmacological effect.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nonProprietaryName' => 'The generic name of this drug or supplement.', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'overdosage' => 'Any information related to overdose on a drug, including signs or symptoms, treatments, contact information for emergency response.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'pregnancyCategory' => 'Pregnancy category of this drug.', - 'pregnancyWarning' => 'Any precaution, guidance, contraindication, etc. related to this drug\'s use during pregnancy.', - 'prescribingInfo' => 'Link to prescribing information for the drug.', - 'prescriptionStatus' => 'Indicates the status of drug prescription, e.g. local catalogs classifications or whether the drug is available by prescription or over-the-counter, etc.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'proprietaryName' => 'Proprietary name given to the diet plan, typically by its originator or creator.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedDrug' => 'Any other drug related to this one, for example commonly-prescribed alternatives.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - 'rxcui' => 'The RxCUI drug identifier from RXNORM.', - '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.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'warning' => 'Any FDA or other warnings about the drug (text or URL).', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', + '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. ', + '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.', + 'administrationRoute' => 'A route by which this drug may be administered, e.g. \'oral\'.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alcoholWarning' => 'Any precaution, guidance, contraindication, etc. related to consumption of alcohol while taking this drug.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableStrength' => 'An available dosage strength for the drug.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'breastfeedingWarning' => 'Any precaution, guidance, contraindication, etc. related to this drug\'s use by breastfeeding mothers.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'clincalPharmacology' => 'Description of the absorption and elimination of drugs, including their concentration (pharmacokinetics, pK) and biological effects (pharmacodynamics, pD).', + 'clinicalPharmacology' => 'Description of the absorption and elimination of drugs, including their concentration (pharmacokinetics, pK) and biological effects (pharmacodynamics, pD).', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'dosageForm' => 'A dosage form in which this drug/supplement is available, e.g. \'tablet\', \'suspension\', \'injection\'.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drugClass' => 'The class of drug this belongs to (e.g., statins).', + 'drugUnit' => 'The unit in which the drug is measured, e.g. \'5 mg tablet\'.', + 'foodWarning' => 'Any precaution, guidance, contraindication, etc. related to consumption of specific foods while taking this drug.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'guideline' => 'A medical guideline related to this entity.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'includedInHealthInsurancePlan' => 'The insurance plans that cover this drug.', + 'interactingDrug' => 'Another drug that is known to interact with this drug in a way that impacts the effect of this drug or causes a risk to the patient. Note: disease interactions are typically captured as contraindications.', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isAvailableGenerically' => 'True if the drug is available in a generic form (regardless of name).', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isProprietary' => 'True if this item\'s name is a proprietary/brand name (vs. generic name).', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'labelDetails' => 'Link to the drug\'s label details.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', + 'mechanismOfAction' => 'The specific biochemical interaction through which this drug or supplement produces its pharmacological effect.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nonProprietaryName' => 'The generic name of this drug or supplement.', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'overdosage' => 'Any information related to overdose on a drug, including signs or symptoms, treatments, contact information for emergency response.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'pregnancyCategory' => 'Pregnancy category of this drug.', + 'pregnancyWarning' => 'Any precaution, guidance, contraindication, etc. related to this drug\'s use during pregnancy.', + 'prescribingInfo' => 'Link to prescribing information for the drug.', + 'prescriptionStatus' => 'Indicates the status of drug prescription, e.g. local catalogs classifications or whether the drug is available by prescription or over-the-counter, etc.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'proprietaryName' => 'Proprietary name given to the diet plan, typically by its originator or creator.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedDrug' => 'Any other drug related to this one, for example commonly-prescribed alternatives.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + 'rxcui' => 'The RxCUI drug identifier from RXNORM.', + '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.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'warning' => 'Any FDA or other warnings about the drug (text or URL).', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/DrugClass.php b/src/models/jsonld/DrugClass.php index 3ed53a516..d56b385e0 100644 --- a/src/models/jsonld/DrugClass.php +++ b/src/models/jsonld/DrugClass.php @@ -25,140 +25,140 @@ */ class DrugClass extends MetaJsonLd implements DrugClassInterface, MedicalEntityInterface, ThingInterface { - use DrugClassTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrugClass'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrugClass'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A class of medical drugs, e.g., statins. Classes can represent general pharmacological class, common mechanisms of action, common physiological effects, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrugClassTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrugClass'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrugClass'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A class of medical drugs, e.g., statins. Classes can represent general pharmacological class, common mechanisms of action, common physiological effects, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrugCost.php b/src/models/jsonld/DrugCost.php index 6ebe4eeb0..7bb022f4a 100644 --- a/src/models/jsonld/DrugCost.php +++ b/src/models/jsonld/DrugCost.php @@ -29,150 +29,150 @@ */ class DrugCost extends MetaJsonLd implements DrugCostInterface, MedicalEntityInterface, ThingInterface { - use DrugCostTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrugCost'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrugCost'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The cost per unit of a medical drug. Note that this type is not meant to represent the price in an offer of a drug for sale; see the Offer type for that. This type will typically be used to tag wholesale or average retail cost of a drug, or maximum reimbursable cost. Costs of medical drugs vary widely depending on how and where they are paid for, so while this type captures some of the variables, costs should be used with caution by consumers of this schema\'s markup.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'applicableLocation' => ['AdministrativeArea'], - 'code' => ['MedicalCode'], - 'costCategory' => ['DrugCostCategory'], - 'costCurrency' => ['Text'], - 'costOrigin' => ['Text'], - 'costPerUnit' => ['Text', 'QualitativeValue', 'Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'drugUnit' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'applicableLocation' => 'The location in which the status applies.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'costCategory' => 'The category of cost, such as wholesale, retail, reimbursement cap, etc.', - 'costCurrency' => 'The currency (in 3-letter) of the drug cost. See: http://en.wikipedia.org/wiki/ISO_4217. ', - 'costOrigin' => 'Additional details to capture the origin of the cost data. For example, \'Medicare Part B\'.', - 'costPerUnit' => 'The cost per unit of the drug.', - 'description' => 'A description of the item.', - '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.', - 'drugUnit' => 'The unit in which the drug is measured, e.g. \'5 mg tablet\'.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrugCostTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrugCost'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrugCost'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The cost per unit of a medical drug. Note that this type is not meant to represent the price in an offer of a drug for sale; see the Offer type for that. This type will typically be used to tag wholesale or average retail cost of a drug, or maximum reimbursable cost. Costs of medical drugs vary widely depending on how and where they are paid for, so while this type captures some of the variables, costs should be used with caution by consumers of this schema\'s markup.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'applicableLocation' => ['AdministrativeArea'], + 'code' => ['MedicalCode'], + 'costCategory' => ['DrugCostCategory'], + 'costCurrency' => ['Text'], + 'costOrigin' => ['Text'], + 'costPerUnit' => ['Text', 'QualitativeValue', 'Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'drugUnit' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'applicableLocation' => 'The location in which the status applies.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'costCategory' => 'The category of cost, such as wholesale, retail, reimbursement cap, etc.', + 'costCurrency' => 'The currency (in 3-letter) of the drug cost. See: http://en.wikipedia.org/wiki/ISO_4217. ', + 'costOrigin' => 'Additional details to capture the origin of the cost data. For example, \'Medicare Part B\'.', + 'costPerUnit' => 'The cost per unit of the drug.', + 'description' => 'A description of the item.', + '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.', + 'drugUnit' => 'The unit in which the drug is measured, e.g. \'5 mg tablet\'.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrugCostCategory.php b/src/models/jsonld/DrugCostCategory.php index a9daf63db..1a043b614 100644 --- a/src/models/jsonld/DrugCostCategory.php +++ b/src/models/jsonld/DrugCostCategory.php @@ -23,126 +23,126 @@ */ class DrugCostCategory extends MetaJsonLd implements DrugCostCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DrugCostCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrugCostCategory'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrugCostCategory'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerated categories of medical drug costs.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrugCostCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrugCostCategory'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrugCostCategory'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerated categories of medical drug costs.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrugLegalStatus.php b/src/models/jsonld/DrugLegalStatus.php index 053fdda7a..1b0343469 100644 --- a/src/models/jsonld/DrugLegalStatus.php +++ b/src/models/jsonld/DrugLegalStatus.php @@ -23,141 +23,141 @@ */ class DrugLegalStatus extends MetaJsonLd implements DrugLegalStatusInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use DrugLegalStatusTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrugLegalStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrugLegalStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The legal availability status of a medical drug.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'applicableLocation' => ['AdministrativeArea'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'applicableLocation' => 'The location in which the status applies.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrugLegalStatusTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrugLegalStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrugLegalStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The legal availability status of a medical drug.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'applicableLocation' => ['AdministrativeArea'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'applicableLocation' => 'The location in which the status applies.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrugPregnancyCategory.php b/src/models/jsonld/DrugPregnancyCategory.php index 9622d6d3f..ac05c9317 100644 --- a/src/models/jsonld/DrugPregnancyCategory.php +++ b/src/models/jsonld/DrugPregnancyCategory.php @@ -24,126 +24,126 @@ */ class DrugPregnancyCategory extends MetaJsonLd implements DrugPregnancyCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DrugPregnancyCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrugPregnancyCategory'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Categories that represent an assessment of the risk of fetal injury due to a drug or pharmaceutical used as directed by the mother during pregnancy.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrugPregnancyCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrugPregnancyCategory'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Categories that represent an assessment of the risk of fetal injury due to a drug or pharmaceutical used as directed by the mother during pregnancy.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrugPrescriptionStatus.php b/src/models/jsonld/DrugPrescriptionStatus.php index 9b5af30ca..276f647e3 100644 --- a/src/models/jsonld/DrugPrescriptionStatus.php +++ b/src/models/jsonld/DrugPrescriptionStatus.php @@ -24,126 +24,126 @@ */ class DrugPrescriptionStatus extends MetaJsonLd implements DrugPrescriptionStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use DrugPrescriptionStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrugPrescriptionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrugPrescriptionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates whether this drug is available by prescription or over-the-counter.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrugPrescriptionStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrugPrescriptionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrugPrescriptionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates whether this drug is available by prescription or over-the-counter.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DrugStrength.php b/src/models/jsonld/DrugStrength.php index 31877e75c..b3fb65494 100644 --- a/src/models/jsonld/DrugStrength.php +++ b/src/models/jsonld/DrugStrength.php @@ -24,149 +24,149 @@ */ class DrugStrength extends MetaJsonLd implements DrugStrengthInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use DrugStrengthTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DrugStrength'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DrugStrength'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific strength in which a medical drug is available in a specific country.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'activeIngredient' => ['Text'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'availableIn' => ['AdministrativeArea'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumIntake' => ['MaximumDoseSchedule'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'strengthUnit' => ['Text'], - 'strengthValue' => ['Number'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', - '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.', - 'alternateName' => 'An alias for the item.', - 'availableIn' => 'The location in which the strength is available.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'strengthUnit' => 'The units of an active ingredient\'s strength, e.g. mg.', - 'strengthValue' => 'The value of an active ingredient\'s strength, e.g. 325.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DrugStrengthTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DrugStrength'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DrugStrength'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific strength in which a medical drug is available in a specific country.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'activeIngredient' => ['Text'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'availableIn' => ['AdministrativeArea'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumIntake' => ['MaximumDoseSchedule'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'strengthUnit' => ['Text'], + 'strengthValue' => ['Number'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', + '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.', + 'alternateName' => 'An alias for the item.', + 'availableIn' => 'The location in which the strength is available.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'strengthUnit' => 'The units of an active ingredient\'s strength, e.g. mg.', + 'strengthValue' => 'The value of an active ingredient\'s strength, e.g. 325.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/DryCleaningOrLaundry.php b/src/models/jsonld/DryCleaningOrLaundry.php index 47e7b3e29..fbc41b569 100644 --- a/src/models/jsonld/DryCleaningOrLaundry.php +++ b/src/models/jsonld/DryCleaningOrLaundry.php @@ -23,330 +23,330 @@ */ class DryCleaningOrLaundry extends MetaJsonLd implements DryCleaningOrLaundryInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use DryCleaningOrLaundryTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use DryCleaningOrLaundryTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'DryCleaningOrLaundry'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'DryCleaningOrLaundry'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/DryCleaningOrLaundry'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/DryCleaningOrLaundry'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A dry-cleaning business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A dry-cleaning business.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Duration.php b/src/models/jsonld/Duration.php index 8a7d2a4e5..31ff644c4 100644 --- a/src/models/jsonld/Duration.php +++ b/src/models/jsonld/Duration.php @@ -24,123 +24,123 @@ */ class Duration extends MetaJsonLd implements DurationInterface, QuantityInterface, IntangibleInterface, ThingInterface { - use DurationTrait; - use QuantityTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Duration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Duration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Quantity: Duration (use [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601)).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use DurationTrait; + use QuantityTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Duration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Duration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Quantity: Duration (use [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601)).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EBook.php b/src/models/jsonld/EBook.php index 196c3da73..b3e151230 100644 --- a/src/models/jsonld/EBook.php +++ b/src/models/jsonld/EBook.php @@ -23,126 +23,126 @@ */ class EBook extends MetaJsonLd implements EBookInterface, BookFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EBookTrait; - use BookFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EBook'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EBook'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Book format: Ebook.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EBookTrait; + use BookFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EBook'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EBook'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Book format: Ebook.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EPRelease.php b/src/models/jsonld/EPRelease.php index e136f125d..126ae74d1 100644 --- a/src/models/jsonld/EPRelease.php +++ b/src/models/jsonld/EPRelease.php @@ -23,126 +23,126 @@ */ class EPRelease extends MetaJsonLd implements EPReleaseInterface, MusicAlbumReleaseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EPReleaseTrait; - use MusicAlbumReleaseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EPRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EPRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'EPRelease.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EPReleaseTrait; + use MusicAlbumReleaseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EPRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EPRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'EPRelease.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryA.php b/src/models/jsonld/EUEnergyEfficiencyCategoryA.php index 7bb3e8bcd..e016e2517 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryA.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryA.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryA extends MetaJsonLd implements EUEnergyEfficiencyCategoryAInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryATrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryATrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryA1Plus.php b/src/models/jsonld/EUEnergyEfficiencyCategoryA1Plus.php index fd05f2bc9..825234387 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryA1Plus.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryA1Plus.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryA1Plus extends MetaJsonLd implements EUEnergyEfficiencyCategoryA1PlusInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryA1PlusTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA1Plus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA1Plus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A+ as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryA1PlusTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA1Plus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA1Plus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A+ as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryA2Plus.php b/src/models/jsonld/EUEnergyEfficiencyCategoryA2Plus.php index 054c4f7c1..e80b4aa6d 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryA2Plus.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryA2Plus.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryA2Plus extends MetaJsonLd implements EUEnergyEfficiencyCategoryA2PlusInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryA2PlusTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA2Plus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA2Plus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A++ as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryA2PlusTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA2Plus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA2Plus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A++ as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryA3Plus.php b/src/models/jsonld/EUEnergyEfficiencyCategoryA3Plus.php index 7ad226208..f117ee1f4 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryA3Plus.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryA3Plus.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryA3Plus extends MetaJsonLd implements EUEnergyEfficiencyCategoryA3PlusInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryA3PlusTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA3Plus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA3Plus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A+++ as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryA3PlusTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryA3Plus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryA3Plus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class A+++ as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryB.php b/src/models/jsonld/EUEnergyEfficiencyCategoryB.php index bb7ba55c2..4a325facc 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryB.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryB.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryB extends MetaJsonLd implements EUEnergyEfficiencyCategoryBInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryBTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryB'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryB'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class B as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryBTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryB'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryB'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class B as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryC.php b/src/models/jsonld/EUEnergyEfficiencyCategoryC.php index 02ba952e8..a74ae7121 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryC.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryC.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryC extends MetaJsonLd implements EUEnergyEfficiencyCategoryCInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryCTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class C as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryCTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class C as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryD.php b/src/models/jsonld/EUEnergyEfficiencyCategoryD.php index 5a24ad36d..8c024ace6 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryD.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryD.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryD extends MetaJsonLd implements EUEnergyEfficiencyCategoryDInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryDTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryD'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryD'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class D as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryDTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryD'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryD'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class D as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryE.php b/src/models/jsonld/EUEnergyEfficiencyCategoryE.php index 14adc36c6..99d59cfbf 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryE.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryE.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryE extends MetaJsonLd implements EUEnergyEfficiencyCategoryEInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryETrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryE'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryE'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class E as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryETrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryE'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryE'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class E as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryF.php b/src/models/jsonld/EUEnergyEfficiencyCategoryF.php index 157f3918a..48aef949b 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryF.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryF.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryF extends MetaJsonLd implements EUEnergyEfficiencyCategoryFInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryFTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryF'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryF'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class F as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryFTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryF'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryF'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class F as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyCategoryG.php b/src/models/jsonld/EUEnergyEfficiencyCategoryG.php index d95323f59..565b3921b 100644 --- a/src/models/jsonld/EUEnergyEfficiencyCategoryG.php +++ b/src/models/jsonld/EUEnergyEfficiencyCategoryG.php @@ -24,127 +24,127 @@ */ class EUEnergyEfficiencyCategoryG extends MetaJsonLd implements EUEnergyEfficiencyCategoryGInterface, EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyCategoryGTrait; - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyCategoryG'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryG'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class G as defined in EU energy labeling regulations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyCategoryGTrait; + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyCategoryG'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyCategoryG'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EU Energy Efficiency Class G as defined in EU energy labeling regulations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EUEnergyEfficiencyEnumeration.php b/src/models/jsonld/EUEnergyEfficiencyEnumeration.php index f34b672fc..cdbd38c66 100644 --- a/src/models/jsonld/EUEnergyEfficiencyEnumeration.php +++ b/src/models/jsonld/EUEnergyEfficiencyEnumeration.php @@ -24,126 +24,126 @@ */ class EUEnergyEfficiencyEnumeration extends MetaJsonLd implements EUEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EUEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates the EU energy efficiency classes A-G as well as A+, A++, and A+++ as defined in EU directive 2017/1369.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EUEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EUEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates the EU energy efficiency classes A-G as well as A+, A++, and A+++ as defined in EU directive 2017/1369.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Ear.php b/src/models/jsonld/Ear.php index c4a4c13f3..38c8c9490 100644 --- a/src/models/jsonld/Ear.php +++ b/src/models/jsonld/Ear.php @@ -23,157 +23,157 @@ */ class Ear extends MetaJsonLd implements EarInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use EarTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Ear'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Ear'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Ear function assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EarTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Ear'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Ear'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Ear function assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EatAction.php b/src/models/jsonld/EatAction.php index 370c06e86..59f38b8ea 100644 --- a/src/models/jsonld/EatAction.php +++ b/src/models/jsonld/EatAction.php @@ -23,151 +23,151 @@ */ class EatAction extends MetaJsonLd implements EatActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use EatActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EatAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EatAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of swallowing solid objects.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EatActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EatAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EatAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of swallowing solid objects.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EditedOrCroppedContent.php b/src/models/jsonld/EditedOrCroppedContent.php index cc7ec712c..cb0843b05 100644 --- a/src/models/jsonld/EditedOrCroppedContent.php +++ b/src/models/jsonld/EditedOrCroppedContent.php @@ -35,126 +35,126 @@ */ class EditedOrCroppedContent extends MetaJsonLd implements EditedOrCroppedContentInterface, MediaManipulationRatingEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EditedOrCroppedContentTrait; - use MediaManipulationRatingEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EditedOrCroppedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EditedOrCroppedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Content coded 'edited or cropped content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'edited or cropped content': The video has been edited or rearranged. This category applies to time edits, including editing multiple videos together to alter the story being told or editing out large portions from a video.\n\nFor an [[ImageObject]] to be 'edited or cropped content': Presenting a part of an image from a larger whole to mislead the viewer.\n\nFor an [[ImageObject]] with embedded text to be 'edited or cropped content': Presenting a part of an image from a larger whole to mislead the viewer.\n\nFor an [[AudioObject]] to be 'edited or cropped content': The audio has been edited or rearranged. This category applies to time edits, including editing multiple audio clips together to alter the story being told or editing out large portions from the recording."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EditedOrCroppedContentTrait; + use MediaManipulationRatingEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EditedOrCroppedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EditedOrCroppedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Content coded 'edited or cropped content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'edited or cropped content': The video has been edited or rearranged. This category applies to time edits, including editing multiple videos together to alter the story being told or editing out large portions from a video.\n\nFor an [[ImageObject]] to be 'edited or cropped content': Presenting a part of an image from a larger whole to mislead the viewer.\n\nFor an [[ImageObject]] with embedded text to be 'edited or cropped content': Presenting a part of an image from a larger whole to mislead the viewer.\n\nFor an [[AudioObject]] to be 'edited or cropped content': The audio has been edited or rearranged. This category applies to time edits, including editing multiple audio clips together to alter the story being told or editing out large portions from the recording."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EducationEvent.php b/src/models/jsonld/EducationEvent.php index 77601cbe5..2b1c82e90 100644 --- a/src/models/jsonld/EducationEvent.php +++ b/src/models/jsonld/EducationEvent.php @@ -23,210 +23,210 @@ */ class EducationEvent extends MetaJsonLd implements EducationEventInterface, EventInterface, ThingInterface { - use EducationEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EducationEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EducationEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Education event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'teaches' => ['DefinedTerm', 'Text'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EducationEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EducationEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EducationEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Education event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'teaches' => ['DefinedTerm', 'Text'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EducationalAudience.php b/src/models/jsonld/EducationalAudience.php index efcc2d421..f929f7cd8 100644 --- a/src/models/jsonld/EducationalAudience.php +++ b/src/models/jsonld/EducationalAudience.php @@ -23,129 +23,129 @@ */ class EducationalAudience extends MetaJsonLd implements EducationalAudienceInterface, AudienceInterface, IntangibleInterface, ThingInterface { - use EducationalAudienceTrait; - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EducationalAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EducationalAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An EducationalAudience.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'audienceType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'educationalRole' => ['Text'], - 'geographicArea' => ['AdministrativeArea'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'description' => 'A description of the item.', - '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.', - 'educationalRole' => 'An educationalRole of an EducationalAudience.', - 'geographicArea' => 'The geographic area associated with the audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EducationalAudienceTrait; + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EducationalAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EducationalAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An EducationalAudience.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'audienceType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'educationalRole' => ['Text'], + 'geographicArea' => ['AdministrativeArea'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'description' => 'A description of the item.', + '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.', + 'educationalRole' => 'An educationalRole of an EducationalAudience.', + 'geographicArea' => 'The geographic area associated with the audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EducationalOccupationalCredential.php b/src/models/jsonld/EducationalOccupationalCredential.php index 3738967cc..4b15550ed 100644 --- a/src/models/jsonld/EducationalOccupationalCredential.php +++ b/src/models/jsonld/EducationalOccupationalCredential.php @@ -25,356 +25,356 @@ */ class EducationalOccupationalCredential extends MetaJsonLd implements EducationalOccupationalCredentialInterface, CreativeWorkInterface, ThingInterface { - use EducationalOccupationalCredentialTrait; - use CreativeWorkTrait; - use ThingTrait; + use EducationalOccupationalCredentialTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EducationalOccupationalCredential'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EducationalOccupationalCredential'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EducationalOccupationalCredential'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EducationalOccupationalCredential'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An educational or occupational credential. A diploma, academic degree, certification, qualification, badge, etc., that may be awarded to a person or other entity that meets the requirements defined by the credentialer.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An educational or occupational credential. A diploma, academic degree, certification, qualification, badge, etc., that may be awarded to a person or other entity that meets the requirements defined by the credentialer.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'credentialCategory' => ['URL', 'DefinedTerm', 'Text'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recognizedBy' => ['Organization'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'validFor' => ['Duration'], - 'validIn' => ['AdministrativeArea'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'credentialCategory' => ['URL', 'DefinedTerm', 'Text'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recognizedBy' => ['Organization'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'validFor' => ['Duration'], + 'validIn' => ['AdministrativeArea'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'credentialCategory' => 'The category or type of credential being described, for example "degree”, “certificate”, “badge”, or more specific term.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recognizedBy' => 'An organization that acknowledges the validity, value or utility of a credential. Note: recognition may include a process of quality assurance or accreditation.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'validFor' => 'The duration of validity of a permit or similar thing.', - 'validIn' => 'The geographic area where a permit or similar thing is valid.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'credentialCategory' => 'The category or type of credential being described, for example "degree”, “certificate”, “badge”, or more specific term.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recognizedBy' => 'An organization that acknowledges the validity, value or utility of a credential. Note: recognition may include a process of quality assurance or accreditation.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'validFor' => 'The duration of validity of a permit or similar thing.', + 'validIn' => 'The geographic area where a permit or similar thing is valid.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/EducationalOccupationalProgram.php b/src/models/jsonld/EducationalOccupationalProgram.php index c31a62e6e..9325cd24a 100644 --- a/src/models/jsonld/EducationalOccupationalProgram.php +++ b/src/models/jsonld/EducationalOccupationalProgram.php @@ -28,170 +28,170 @@ */ class EducationalOccupationalProgram extends MetaJsonLd implements EducationalOccupationalProgramInterface, IntangibleInterface, ThingInterface { - use EducationalOccupationalProgramTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EducationalOccupationalProgram'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EducationalOccupationalProgram'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A program offered by an institution which determines the learning progress to achieve an outcome, usually a credential like a degree or certificate. This would define a discrete set of opportunities (e.g., job, courses) that together constitute a program with a clear start, end, set of requirements, and transition to a new occupational opportunity (e.g., a job), or sometimes a higher educational opportunity (e.g., an advanced degree).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'applicationDeadline' => ['Date'], - 'applicationStartDate' => ['Date'], - 'dayOfWeek' => ['DayOfWeek'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'educationalCredentialAwarded' => ['URL', 'EducationalOccupationalCredential', 'Text'], - 'educationalProgramMode' => ['Text', 'URL'], - 'endDate' => ['DateTime', 'Date'], - 'financialAidEligible' => ['DefinedTerm', 'Text'], - 'hasCourse' => ['Course'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumEnrollment' => ['Integer'], - 'name' => ['Text'], - 'numberOfCredits' => ['StructuredValue', 'Integer'], - 'occupationalCategory' => ['Text', 'CategoryCode'], - 'occupationalCredentialAwarded' => ['EducationalOccupationalCredential', 'Text', 'URL'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'programPrerequisites' => ['Text', 'EducationalOccupationalCredential', 'Course', 'AlignmentObject'], - 'programType' => ['DefinedTerm', 'Text'], - 'provider' => ['Organization', 'Person'], - 'salaryUponCompletion' => ['MonetaryAmountDistribution'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termDuration' => ['Duration'], - 'termsPerYear' => ['Number'], - 'timeOfDay' => ['Text'], - 'timeToComplete' => ['Duration'], - 'trainingSalary' => ['MonetaryAmountDistribution'], - 'typicalCreditsPerTerm' => ['Integer', 'StructuredValue'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'applicationDeadline' => 'The date at which the program stops collecting applications for the next enrollment cycle.', - 'applicationStartDate' => 'The date at which the program begins collecting applications for the next enrollment cycle.', - 'dayOfWeek' => 'The day of the week for which these opening hours are valid.', - 'description' => 'A description of the item.', - '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.', - 'educationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.', - 'educationalProgramMode' => 'Similar to courseMode, the medium or means of delivery of the program as a whole. The value may either be a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous ).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'financialAidEligible' => 'A financial aid type or program which students may use to pay for tuition or fees associated with the program.', - 'hasCourse' => 'A course or class that is one of the learning opportunities that constitute an educational / occupational program. No information is implied about whether the course is mandatory or optional; no guarantee is implied about whether the course will be available to everyone on the program.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maximumEnrollment' => 'The maximum number of students who may be enrolled in the program.', - 'name' => 'The name of the item.', - 'numberOfCredits' => 'The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.', - 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', - 'occupationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'programPrerequisites' => 'Prerequisites for enrolling in the program.', - 'programType' => 'The type of educational or occupational program. For example, classroom, internship, alternance, etc.', - '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.', - 'salaryUponCompletion' => 'The expected salary upon completing the training.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termDuration' => 'The amount of time in a term as defined by the institution. A term is a length of time where students take one or more classes. Semesters and quarters are common units for term.', - 'termsPerYear' => 'The number of times terms of study are offered per year. Semesters and quarters are common units for term. For example, if the student can only take 2 semesters for the program in one year, then termsPerYear should be 2.', - 'timeOfDay' => 'The time of day the program normally runs. For example, "evenings".', - 'timeToComplete' => 'The expected length of time to complete the program if attending full-time.', - 'trainingSalary' => 'The estimated salary earned while in the program.', - 'typicalCreditsPerTerm' => 'The number of credits or units a full-time student would be expected to take in 1 term however \'term\' is defined by the institution.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EducationalOccupationalProgramTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EducationalOccupationalProgram'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EducationalOccupationalProgram'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A program offered by an institution which determines the learning progress to achieve an outcome, usually a credential like a degree or certificate. This would define a discrete set of opportunities (e.g., job, courses) that together constitute a program with a clear start, end, set of requirements, and transition to a new occupational opportunity (e.g., a job), or sometimes a higher educational opportunity (e.g., an advanced degree).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'applicationDeadline' => ['Date'], + 'applicationStartDate' => ['Date'], + 'dayOfWeek' => ['DayOfWeek'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'educationalCredentialAwarded' => ['URL', 'EducationalOccupationalCredential', 'Text'], + 'educationalProgramMode' => ['Text', 'URL'], + 'endDate' => ['DateTime', 'Date'], + 'financialAidEligible' => ['DefinedTerm', 'Text'], + 'hasCourse' => ['Course'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumEnrollment' => ['Integer'], + 'name' => ['Text'], + 'numberOfCredits' => ['StructuredValue', 'Integer'], + 'occupationalCategory' => ['Text', 'CategoryCode'], + 'occupationalCredentialAwarded' => ['EducationalOccupationalCredential', 'Text', 'URL'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'programPrerequisites' => ['Text', 'EducationalOccupationalCredential', 'Course', 'AlignmentObject'], + 'programType' => ['DefinedTerm', 'Text'], + 'provider' => ['Organization', 'Person'], + 'salaryUponCompletion' => ['MonetaryAmountDistribution'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termDuration' => ['Duration'], + 'termsPerYear' => ['Number'], + 'timeOfDay' => ['Text'], + 'timeToComplete' => ['Duration'], + 'trainingSalary' => ['MonetaryAmountDistribution'], + 'typicalCreditsPerTerm' => ['Integer', 'StructuredValue'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'applicationDeadline' => 'The date at which the program stops collecting applications for the next enrollment cycle.', + 'applicationStartDate' => 'The date at which the program begins collecting applications for the next enrollment cycle.', + 'dayOfWeek' => 'The day of the week for which these opening hours are valid.', + 'description' => 'A description of the item.', + '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.', + 'educationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.', + 'educationalProgramMode' => 'Similar to courseMode, the medium or means of delivery of the program as a whole. The value may either be a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous ).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'financialAidEligible' => 'A financial aid type or program which students may use to pay for tuition or fees associated with the program.', + 'hasCourse' => 'A course or class that is one of the learning opportunities that constitute an educational / occupational program. No information is implied about whether the course is mandatory or optional; no guarantee is implied about whether the course will be available to everyone on the program.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maximumEnrollment' => 'The maximum number of students who may be enrolled in the program.', + 'name' => 'The name of the item.', + 'numberOfCredits' => 'The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.', + 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', + 'occupationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'programPrerequisites' => 'Prerequisites for enrolling in the program.', + 'programType' => 'The type of educational or occupational program. For example, classroom, internship, alternance, etc.', + '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.', + 'salaryUponCompletion' => 'The expected salary upon completing the training.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termDuration' => 'The amount of time in a term as defined by the institution. A term is a length of time where students take one or more classes. Semesters and quarters are common units for term.', + 'termsPerYear' => 'The number of times terms of study are offered per year. Semesters and quarters are common units for term. For example, if the student can only take 2 semesters for the program in one year, then termsPerYear should be 2.', + 'timeOfDay' => 'The time of day the program normally runs. For example, "evenings".', + 'timeToComplete' => 'The expected length of time to complete the program if attending full-time.', + 'trainingSalary' => 'The estimated salary earned while in the program.', + 'typicalCreditsPerTerm' => 'The number of credits or units a full-time student would be expected to take in 1 term however \'term\' is defined by the institution.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EducationalOrganization.php b/src/models/jsonld/EducationalOrganization.php index 8abd0a16d..cdbe33331 100644 --- a/src/models/jsonld/EducationalOrganization.php +++ b/src/models/jsonld/EducationalOrganization.php @@ -23,322 +23,322 @@ */ class EducationalOrganization extends MetaJsonLd implements EducationalOrganizationInterface, CivicStructureInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use EducationalOrganizationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use EducationalOrganizationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EducationalOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EducationalOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EducationalOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EducationalOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An educational organization.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An educational organization.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/EffectivenessHealthAspect.php b/src/models/jsonld/EffectivenessHealthAspect.php index d62b0eb96..f4f3258cd 100644 --- a/src/models/jsonld/EffectivenessHealthAspect.php +++ b/src/models/jsonld/EffectivenessHealthAspect.php @@ -23,126 +23,126 @@ */ class EffectivenessHealthAspect extends MetaJsonLd implements EffectivenessHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EffectivenessHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EffectivenessHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EffectivenessHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about the effectiveness-related aspects of a health topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EffectivenessHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EffectivenessHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EffectivenessHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about the effectiveness-related aspects of a health topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Electrician.php b/src/models/jsonld/Electrician.php index d28c85481..a4c9269c8 100644 --- a/src/models/jsonld/Electrician.php +++ b/src/models/jsonld/Electrician.php @@ -23,331 +23,331 @@ */ class Electrician extends MetaJsonLd implements ElectricianInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ElectricianTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ElectricianTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Electrician'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Electrician'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Electrician'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Electrician'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An electrician.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An electrician.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ElectronicsStore.php b/src/models/jsonld/ElectronicsStore.php index b5e8187e7..804e9f72e 100644 --- a/src/models/jsonld/ElectronicsStore.php +++ b/src/models/jsonld/ElectronicsStore.php @@ -23,331 +23,331 @@ */ class ElectronicsStore extends MetaJsonLd implements ElectronicsStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ElectronicsStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ElectronicsStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ElectronicsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ElectronicsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ElectronicsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ElectronicsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An electronics store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An electronics store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ElementarySchool.php b/src/models/jsonld/ElementarySchool.php index 2315b71aa..554609feb 100644 --- a/src/models/jsonld/ElementarySchool.php +++ b/src/models/jsonld/ElementarySchool.php @@ -23,323 +23,323 @@ */ class ElementarySchool extends MetaJsonLd implements ElementarySchoolInterface, EducationalOrganizationInterface, CivicStructureInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ElementarySchoolTrait; - use EducationalOrganizationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ElementarySchoolTrait; + use EducationalOrganizationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ElementarySchool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ElementarySchool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ElementarySchool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ElementarySchool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An elementary school.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An elementary school.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/EmailMessage.php b/src/models/jsonld/EmailMessage.php index 78e96cad9..dab4d2c28 100644 --- a/src/models/jsonld/EmailMessage.php +++ b/src/models/jsonld/EmailMessage.php @@ -23,365 +23,365 @@ */ class EmailMessage extends MetaJsonLd implements EmailMessageInterface, MessageInterface, CreativeWorkInterface, ThingInterface { - use EmailMessageTrait; - use MessageTrait; - use CreativeWorkTrait; - use ThingTrait; + use EmailMessageTrait; + use MessageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EmailMessage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EmailMessage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EmailMessage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EmailMessage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Message'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Message'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An email message.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An email message.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bccRecipient' => ['Organization', 'ContactPoint', 'Person'], - 'ccRecipient' => ['Organization', 'ContactPoint', 'Person'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateRead' => ['DateTime', 'Date'], - 'dateReceived' => ['DateTime'], - 'dateSent' => ['DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'messageAttachment' => ['CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sender' => ['Audience', 'Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'toRecipient' => ['Person', 'Organization', 'ContactPoint', 'Audience'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bccRecipient' => ['Organization', 'ContactPoint', 'Person'], + 'ccRecipient' => ['Organization', 'ContactPoint', 'Person'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateRead' => ['DateTime', 'Date'], + 'dateReceived' => ['DateTime'], + 'dateSent' => ['DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'messageAttachment' => ['CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sender' => ['Audience', 'Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'toRecipient' => ['Person', 'Organization', 'ContactPoint', 'Audience'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bccRecipient' => 'A sub property of recipient. The recipient blind copied on a message.', - 'ccRecipient' => 'A sub property of recipient. The recipient copied on a message.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateRead' => 'The date/time at which the message has been read by the recipient if a single recipient exists.', - 'dateReceived' => 'The date/time the message was received if a single recipient exists.', - 'dateSent' => 'The date/time at which the message was sent.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'messageAttachment' => 'A CreativeWork attached to the message.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sender' => 'A sub property of participant. The participant who is at the sending end of the action.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'toRecipient' => 'A sub property of recipient. The recipient who was directly sent the message.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bccRecipient' => 'A sub property of recipient. The recipient blind copied on a message.', + 'ccRecipient' => 'A sub property of recipient. The recipient copied on a message.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateRead' => 'The date/time at which the message has been read by the recipient if a single recipient exists.', + 'dateReceived' => 'The date/time the message was received if a single recipient exists.', + 'dateSent' => 'The date/time at which the message was sent.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'messageAttachment' => 'A CreativeWork attached to the message.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sender' => 'A sub property of participant. The participant who is at the sending end of the action.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'toRecipient' => 'A sub property of recipient. The recipient who was directly sent the message.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Embassy.php b/src/models/jsonld/Embassy.php index ddd2f4e6b..2bd234a08 100644 --- a/src/models/jsonld/Embassy.php +++ b/src/models/jsonld/Embassy.php @@ -23,216 +23,216 @@ */ class Embassy extends MetaJsonLd implements EmbassyInterface, GovernmentBuildingInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use EmbassyTrait; - use GovernmentBuildingTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Embassy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Embassy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An embassy.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EmbassyTrait; + use GovernmentBuildingTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Embassy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Embassy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An embassy.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Emergency.php b/src/models/jsonld/Emergency.php index 6de2002b0..89bd62044 100644 --- a/src/models/jsonld/Emergency.php +++ b/src/models/jsonld/Emergency.php @@ -24,338 +24,338 @@ */ class Emergency extends MetaJsonLd implements EmergencyInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use EmergencyTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use EmergencyTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Emergency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Emergency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Emergency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Emergency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that deals with the evaluation and initial treatment of medical conditions caused by trauma or sudden illness.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that deals with the evaluation and initial treatment of medical conditions caused by trauma or sudden illness.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/EmergencyService.php b/src/models/jsonld/EmergencyService.php index 78eacb443..f4697d5dc 100644 --- a/src/models/jsonld/EmergencyService.php +++ b/src/models/jsonld/EmergencyService.php @@ -23,330 +23,330 @@ */ class EmergencyService extends MetaJsonLd implements EmergencyServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use EmergencyServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use EmergencyServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EmergencyService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EmergencyService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EmergencyService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EmergencyService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An emergency service, such as a fire station or ER.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An emergency service, such as a fire station or ER.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/EmployeeRole.php b/src/models/jsonld/EmployeeRole.php index 28f52aa95..ace723b5a 100644 --- a/src/models/jsonld/EmployeeRole.php +++ b/src/models/jsonld/EmployeeRole.php @@ -23,138 +23,138 @@ */ class EmployeeRole extends MetaJsonLd implements EmployeeRoleInterface, OrganizationRoleInterface, RoleInterface, IntangibleInterface, ThingInterface { - use EmployeeRoleTrait; - use OrganizationRoleTrait; - use RoleTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EmployeeRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EmployeeRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrganizationRole'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A subclass of OrganizationRole used to describe employee relationships.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'baseSalary' => ['MonetaryAmount', 'Number', 'PriceSpecification'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'namedPosition' => ['Text', 'URL'], - 'numberedPosition' => ['Number'], - 'potentialAction' => ['Action'], - 'roleName' => ['Text', 'URL'], - 'salaryCurrency' => ['Text'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'baseSalary' => 'The base salary of the job or of an employee in an EmployeeRole.', - 'description' => 'A description of the item.', - '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.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - 'numberedPosition' => 'A number associated with a role in an organization, for example, the number on an athlete\'s jersey.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - 'salaryCurrency' => 'The currency (coded using [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)) used for the main salary information in this job posting or for this employee.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EmployeeRoleTrait; + use OrganizationRoleTrait; + use RoleTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EmployeeRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EmployeeRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrganizationRole'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A subclass of OrganizationRole used to describe employee relationships.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'baseSalary' => ['MonetaryAmount', 'Number', 'PriceSpecification'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'namedPosition' => ['Text', 'URL'], + 'numberedPosition' => ['Number'], + 'potentialAction' => ['Action'], + 'roleName' => ['Text', 'URL'], + 'salaryCurrency' => ['Text'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'baseSalary' => 'The base salary of the job or of an employee in an EmployeeRole.', + 'description' => 'A description of the item.', + '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.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + 'numberedPosition' => 'A number associated with a role in an organization, for example, the number on an athlete\'s jersey.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + 'salaryCurrency' => 'The currency (coded using [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)) used for the main salary information in this job posting or for this employee.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EmployerAggregateRating.php b/src/models/jsonld/EmployerAggregateRating.php index 7040fe799..d5b316a3e 100644 --- a/src/models/jsonld/EmployerAggregateRating.php +++ b/src/models/jsonld/EmployerAggregateRating.php @@ -23,142 +23,142 @@ */ class EmployerAggregateRating extends MetaJsonLd implements EmployerAggregateRatingInterface, AggregateRatingInterface, RatingInterface, IntangibleInterface, ThingInterface { - use EmployerAggregateRatingTrait; - use AggregateRatingTrait; - use RatingTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EmployerAggregateRating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EmployerAggregateRating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AggregateRating'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An aggregate rating of an Organization related to its role as an employer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'author' => ['Organization', 'Person'], - 'bestRating' => ['Text', 'Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itemReviewed' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'ratingCount' => ['Integer'], - 'ratingExplanation' => ['Text'], - 'ratingValue' => ['Number', 'Text'], - 'reviewAspect' => ['Text'], - 'reviewCount' => ['Integer'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'worstRating' => ['Text', 'Number'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'ratingCount' => 'The count of total number of ratings.', - 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', - 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewCount' => 'The count of total number of reviews.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EmployerAggregateRatingTrait; + use AggregateRatingTrait; + use RatingTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EmployerAggregateRating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EmployerAggregateRating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AggregateRating'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An aggregate rating of an Organization related to its role as an employer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'author' => ['Organization', 'Person'], + 'bestRating' => ['Text', 'Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itemReviewed' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'ratingCount' => ['Integer'], + 'ratingExplanation' => ['Text'], + 'ratingValue' => ['Number', 'Text'], + 'reviewAspect' => ['Text'], + 'reviewCount' => ['Integer'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'worstRating' => ['Text', 'Number'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'ratingCount' => 'The count of total number of ratings.', + 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', + 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewCount' => 'The count of total number of reviews.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EmployerReview.php b/src/models/jsonld/EmployerReview.php index 72abeb5fa..af5a2ab09 100644 --- a/src/models/jsonld/EmployerReview.php +++ b/src/models/jsonld/EmployerReview.php @@ -25,365 +25,365 @@ */ class EmployerReview extends MetaJsonLd implements EmployerReviewInterface, ReviewInterface, CreativeWorkInterface, ThingInterface { - use EmployerReviewTrait; - use ReviewTrait; - use CreativeWorkTrait; - use ThingTrait; + use EmployerReviewTrait; + use ReviewTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EmployerReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EmployerReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EmployerReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EmployerReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An [[EmployerReview]] is a review of an [[Organization]] regarding its role as an employer, written by a current or former employee of that organization.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An [[EmployerReview]] is a review of an [[Organization]] regarding its role as an employer, written by a current or former employee of that organization.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/EmploymentAgency.php b/src/models/jsonld/EmploymentAgency.php index 48be0a41b..a46709a2e 100644 --- a/src/models/jsonld/EmploymentAgency.php +++ b/src/models/jsonld/EmploymentAgency.php @@ -23,330 +23,330 @@ */ class EmploymentAgency extends MetaJsonLd implements EmploymentAgencyInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use EmploymentAgencyTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use EmploymentAgencyTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EmploymentAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EmploymentAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EmploymentAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EmploymentAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An employment agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An employment agency.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Endocrine.php b/src/models/jsonld/Endocrine.php index de2e603a7..553db29fa 100644 --- a/src/models/jsonld/Endocrine.php +++ b/src/models/jsonld/Endocrine.php @@ -24,128 +24,128 @@ */ class Endocrine extends MetaJsonLd implements EndocrineInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use EndocrineTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Endocrine'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Endocrine'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of endocrine glands and their secretions.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EndocrineTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Endocrine'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Endocrine'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of endocrine glands and their secretions.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EndorseAction.php b/src/models/jsonld/EndorseAction.php index eef289a5a..ee47fdc21 100644 --- a/src/models/jsonld/EndorseAction.php +++ b/src/models/jsonld/EndorseAction.php @@ -23,150 +23,150 @@ */ class EndorseAction extends MetaJsonLd implements EndorseActionInterface, ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use EndorseActionTrait; - use ReactActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EndorseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EndorseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent approves/certifies/likes/supports/sanctions an object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'endorsee' => ['Organization', 'Person'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'endorsee' => 'A sub property of participant. The person/organization being supported.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EndorseActionTrait; + use ReactActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EndorseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EndorseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent approves/certifies/likes/supports/sanctions an object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'endorsee' => ['Organization', 'Person'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'endorsee' => 'A sub property of participant. The person/organization being supported.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EndorsementRating.php b/src/models/jsonld/EndorsementRating.php index 89f77c9d1..9ca580cd3 100644 --- a/src/models/jsonld/EndorsementRating.php +++ b/src/models/jsonld/EndorsementRating.php @@ -33,135 +33,135 @@ */ class EndorsementRating extends MetaJsonLd implements EndorsementRatingInterface, RatingInterface, IntangibleInterface, ThingInterface { - use EndorsementRatingTrait; - use RatingTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EndorsementRating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EndorsementRating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Rating'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "An EndorsementRating is a rating that expresses some level of endorsement, for example inclusion in a \"critic's pick\" blog, a\n\"Like\" or \"+1\" on a social network. It can be considered the [[result]] of an [[EndorseAction]] in which the [[object]] of the action is rated positively by\nsome [[agent]]. As is common elsewhere in schema.org, it is sometimes more useful to describe the results of such an action without explicitly describing the [[Action]].\n\nAn [[EndorsementRating]] may be part of a numeric scale or organized system, but this is not required: having an explicit type for indicating a positive,\nendorsement rating is particularly useful in the absence of numeric scales as it helps consumers understand that the rating is broadly positive."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'author' => ['Organization', 'Person'], - 'bestRating' => ['Text', 'Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'ratingExplanation' => ['Text'], - 'ratingValue' => ['Number', 'Text'], - 'reviewAspect' => ['Text'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'worstRating' => ['Text', 'Number'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', - 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EndorsementRatingTrait; + use RatingTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EndorsementRating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EndorsementRating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Rating'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "An EndorsementRating is a rating that expresses some level of endorsement, for example inclusion in a \"critic's pick\" blog, a\n\"Like\" or \"+1\" on a social network. It can be considered the [[result]] of an [[EndorseAction]] in which the [[object]] of the action is rated positively by\nsome [[agent]]. As is common elsewhere in schema.org, it is sometimes more useful to describe the results of such an action without explicitly describing the [[Action]].\n\nAn [[EndorsementRating]] may be part of a numeric scale or organized system, but this is not required: having an explicit type for indicating a positive,\nendorsement rating is particularly useful in the absence of numeric scales as it helps consumers understand that the rating is broadly positive."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'author' => ['Organization', 'Person'], + 'bestRating' => ['Text', 'Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'ratingExplanation' => ['Text'], + 'ratingValue' => ['Number', 'Text'], + 'reviewAspect' => ['Text'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'worstRating' => ['Text', 'Number'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', + 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Energy.php b/src/models/jsonld/Energy.php index 3ce1954af..84bcee559 100644 --- a/src/models/jsonld/Energy.php +++ b/src/models/jsonld/Energy.php @@ -24,123 +24,123 @@ */ class Energy extends MetaJsonLd implements EnergyInterface, QuantityInterface, IntangibleInterface, ThingInterface { - use EnergyTrait; - use QuantityTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Energy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Energy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Properties that take Energy as values are of the form \' \'.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EnergyTrait; + use QuantityTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Energy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Energy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Properties that take Energy as values are of the form \' \'.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EnergyConsumptionDetails.php b/src/models/jsonld/EnergyConsumptionDetails.php index c92360aea..505e8b536 100644 --- a/src/models/jsonld/EnergyConsumptionDetails.php +++ b/src/models/jsonld/EnergyConsumptionDetails.php @@ -29,128 +29,128 @@ */ class EnergyConsumptionDetails extends MetaJsonLd implements EnergyConsumptionDetailsInterface, IntangibleInterface, ThingInterface { - use EnergyConsumptionDetailsTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EnergyConsumptionDetails'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EnergyConsumptionDetails'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'EnergyConsumptionDetails represents information related to the energy efficiency of a product that consumes energy. The information that can be provided is based on international regulations such as for example [EU directive 2017/1369](https://eur-lex.europa.eu/eli/reg/2017/1369/oj) for energy labeling and the [Energy labeling rule](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/energy-water-use-labeling-consumer) under the Energy Policy and Conservation Act (EPCA) in the US.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'energyEfficiencyScaleMax' => ['EUEnergyEfficiencyEnumeration'], - 'energyEfficiencyScaleMin' => ['EUEnergyEfficiencyEnumeration'], - 'hasEnergyEfficiencyCategory' => ['EnergyEfficiencyEnumeration'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'energyEfficiencyScaleMax' => 'Specifies the most energy efficient class on the regulated EU energy consumption scale for the product category a product belongs to. For example, energy consumption for televisions placed on the market after January 1, 2020 is scaled from D to A+++.', - 'energyEfficiencyScaleMin' => 'Specifies the least energy efficient class on the regulated EU energy consumption scale for the product category a product belongs to. For example, energy consumption for televisions placed on the market after January 1, 2020 is scaled from D to A+++.', - 'hasEnergyEfficiencyCategory' => 'Defines the energy efficiency Category (which could be either a rating out of range of values or a yes/no certification) for a product according to an international energy efficiency standard.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EnergyConsumptionDetailsTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EnergyConsumptionDetails'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EnergyConsumptionDetails'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'EnergyConsumptionDetails represents information related to the energy efficiency of a product that consumes energy. The information that can be provided is based on international regulations such as for example [EU directive 2017/1369](https://eur-lex.europa.eu/eli/reg/2017/1369/oj) for energy labeling and the [Energy labeling rule](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/energy-water-use-labeling-consumer) under the Energy Policy and Conservation Act (EPCA) in the US.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'energyEfficiencyScaleMax' => ['EUEnergyEfficiencyEnumeration'], + 'energyEfficiencyScaleMin' => ['EUEnergyEfficiencyEnumeration'], + 'hasEnergyEfficiencyCategory' => ['EnergyEfficiencyEnumeration'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'energyEfficiencyScaleMax' => 'Specifies the most energy efficient class on the regulated EU energy consumption scale for the product category a product belongs to. For example, energy consumption for televisions placed on the market after January 1, 2020 is scaled from D to A+++.', + 'energyEfficiencyScaleMin' => 'Specifies the least energy efficient class on the regulated EU energy consumption scale for the product category a product belongs to. For example, energy consumption for televisions placed on the market after January 1, 2020 is scaled from D to A+++.', + 'hasEnergyEfficiencyCategory' => 'Defines the energy efficiency Category (which could be either a rating out of range of values or a yes/no certification) for a product according to an international energy efficiency standard.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EnergyEfficiencyEnumeration.php b/src/models/jsonld/EnergyEfficiencyEnumeration.php index 3ddcc3fd2..96785d159 100644 --- a/src/models/jsonld/EnergyEfficiencyEnumeration.php +++ b/src/models/jsonld/EnergyEfficiencyEnumeration.php @@ -25,125 +25,125 @@ */ class EnergyEfficiencyEnumeration extends MetaJsonLd implements EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates energy efficiency levels (also known as "classes" or "ratings") and certifications that are part of several international energy efficiency standards.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates energy efficiency levels (also known as "classes" or "ratings") and certifications that are part of several international energy efficiency standards.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EnergyStarCertified.php b/src/models/jsonld/EnergyStarCertified.php index aa1a030b9..e1c28a2d3 100644 --- a/src/models/jsonld/EnergyStarCertified.php +++ b/src/models/jsonld/EnergyStarCertified.php @@ -23,127 +23,127 @@ */ class EnergyStarCertified extends MetaJsonLd implements EnergyStarCertifiedInterface, EnergyStarEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EnergyStarCertifiedTrait; - use EnergyStarEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EnergyStarCertified'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EnergyStarCertified'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EnergyStarEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents EnergyStar certification.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EnergyStarCertifiedTrait; + use EnergyStarEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EnergyStarCertified'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EnergyStarCertified'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EnergyStarEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents EnergyStar certification.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EnergyStarEnergyEfficiencyEnumeration.php b/src/models/jsonld/EnergyStarEnergyEfficiencyEnumeration.php index 635070c64..4eb726290 100644 --- a/src/models/jsonld/EnergyStarEnergyEfficiencyEnumeration.php +++ b/src/models/jsonld/EnergyStarEnergyEfficiencyEnumeration.php @@ -23,126 +23,126 @@ */ class EnergyStarEnergyEfficiencyEnumeration extends MetaJsonLd implements EnergyStarEnergyEfficiencyEnumerationInterface, EnergyEfficiencyEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EnergyStarEnergyEfficiencyEnumerationTrait; - use EnergyEfficiencyEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EnergyStarEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EnergyStarEnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Used to indicate whether a product is EnergyStar certified.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EnergyStarEnergyEfficiencyEnumerationTrait; + use EnergyEfficiencyEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EnergyStarEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EnergyStarEnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EnergyEfficiencyEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Used to indicate whether a product is EnergyStar certified.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EngineSpecification.php b/src/models/jsonld/EngineSpecification.php index 0569f8bce..3bbf93107 100644 --- a/src/models/jsonld/EngineSpecification.php +++ b/src/models/jsonld/EngineSpecification.php @@ -24,133 +24,133 @@ */ class EngineSpecification extends MetaJsonLd implements EngineSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use EngineSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EngineSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EngineSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Information about the engine of the vehicle. A vehicle can have multiple engines represented by multiple engine specification entities.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'engineDisplacement' => ['QuantitativeValue'], - 'enginePower' => ['QuantitativeValue'], - 'engineType' => ['Text', 'URL', 'QualitativeValue'], - 'fuelType' => ['URL', 'QualitativeValue', 'Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'torque' => ['QuantitativeValue'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'engineDisplacement' => 'The volume swept by all of the pistons inside the cylinders of an internal combustion engine in a single movement. Typical unit code(s): CMQ for cubic centimeter, LTR for liters, INQ for cubic inches * Note 1: You can link to information about how the given value has been determined using the [[valueReference]] property. * Note 2: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'enginePower' => 'The power of the vehicle\'s engine. Typical unit code(s): KWT for kilowatt, BHP for brake horsepower, N12 for metric horsepower (PS, with 1 PS = 735,49875 W) * Note 1: There are many different ways of measuring an engine\'s power. For an overview, see [http://en.wikipedia.org/wiki/Horsepower#Engine\_power\_test\_codes](http://en.wikipedia.org/wiki/Horsepower#Engine_power_test_codes). * Note 2: You can link to information about how the given value has been determined using the [[valueReference]] property. * Note 3: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'engineType' => 'The type of engine or engines powering the vehicle.', - 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'torque' => 'The torque (turning force) of the vehicle\'s engine. Typical unit code(s): NU for newton metre (N m), F17 for pound-force per foot, or F48 for pound-force per inch * Note 1: You can link to information about how the given value has been determined (e.g. reference RPM) using the [[valueReference]] property. * Note 2: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EngineSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EngineSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EngineSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Information about the engine of the vehicle. A vehicle can have multiple engines represented by multiple engine specification entities.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'engineDisplacement' => ['QuantitativeValue'], + 'enginePower' => ['QuantitativeValue'], + 'engineType' => ['Text', 'URL', 'QualitativeValue'], + 'fuelType' => ['URL', 'QualitativeValue', 'Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'torque' => ['QuantitativeValue'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'engineDisplacement' => 'The volume swept by all of the pistons inside the cylinders of an internal combustion engine in a single movement. Typical unit code(s): CMQ for cubic centimeter, LTR for liters, INQ for cubic inches * Note 1: You can link to information about how the given value has been determined using the [[valueReference]] property. * Note 2: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'enginePower' => 'The power of the vehicle\'s engine. Typical unit code(s): KWT for kilowatt, BHP for brake horsepower, N12 for metric horsepower (PS, with 1 PS = 735,49875 W) * Note 1: There are many different ways of measuring an engine\'s power. For an overview, see [http://en.wikipedia.org/wiki/Horsepower#Engine\_power\_test\_codes](http://en.wikipedia.org/wiki/Horsepower#Engine_power_test_codes). * Note 2: You can link to information about how the given value has been determined using the [[valueReference]] property. * Note 3: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'engineType' => 'The type of engine or engines powering the vehicle.', + 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'torque' => 'The torque (turning force) of the vehicle\'s engine. Typical unit code(s): NU for newton metre (N m), F17 for pound-force per foot, or F48 for pound-force per inch * Note 1: You can link to information about how the given value has been determined (e.g. reference RPM) using the [[valueReference]] property. * Note 2: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EnrollingByInvitation.php b/src/models/jsonld/EnrollingByInvitation.php index 1000724f6..3ac5a2b2c 100644 --- a/src/models/jsonld/EnrollingByInvitation.php +++ b/src/models/jsonld/EnrollingByInvitation.php @@ -23,127 +23,127 @@ */ class EnrollingByInvitation extends MetaJsonLd implements EnrollingByInvitationInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EnrollingByInvitationTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EnrollingByInvitation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EnrollingByInvitation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enrolling participants by invitation only.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EnrollingByInvitationTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EnrollingByInvitation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EnrollingByInvitation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enrolling participants by invitation only.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EntertainmentBusiness.php b/src/models/jsonld/EntertainmentBusiness.php index abe423442..341739dc3 100644 --- a/src/models/jsonld/EntertainmentBusiness.php +++ b/src/models/jsonld/EntertainmentBusiness.php @@ -23,330 +23,330 @@ */ class EntertainmentBusiness extends MetaJsonLd implements EntertainmentBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EntertainmentBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EntertainmentBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EntertainmentBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EntertainmentBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A business providing entertainment.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A business providing entertainment.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/EntryPoint.php b/src/models/jsonld/EntryPoint.php index e6c8528b8..ebd34e999 100644 --- a/src/models/jsonld/EntryPoint.php +++ b/src/models/jsonld/EntryPoint.php @@ -23,136 +23,136 @@ */ class EntryPoint extends MetaJsonLd implements EntryPointInterface, IntangibleInterface, ThingInterface { - use EntryPointTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EntryPoint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EntryPoint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An entry point, within some Web-based protocol.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionApplication' => ['SoftwareApplication'], - 'actionPlatform' => ['URL', 'DigitalPlatformEnumeration', 'Text'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'application' => ['SoftwareApplication'], - 'contentType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'encodingType' => ['Text'], - 'httpMethod' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'urlTemplate' => ['Text'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionApplication' => 'An application that can complete the request.', - 'actionPlatform' => 'The high level platform(s) where the Action can be performed for the given URL. To specify a specific application or operating system instance, use actionApplication.', - '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.', - 'alternateName' => 'An alias for the item.', - 'application' => 'An application that can complete the request.', - 'contentType' => 'The supported content type(s) for an EntryPoint response.', - 'description' => 'A description of the item.', - '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.', - 'encodingType' => 'The supported encoding type(s) for an EntryPoint request.', - 'httpMethod' => 'An HTTP method that specifies the appropriate HTTP method for a request to an HTTP EntryPoint. Values are capitalized strings as used in HTTP.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'urlTemplate' => 'An url template (RFC6570) that will be used to construct the target of the execution of the action.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EntryPointTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EntryPoint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EntryPoint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An entry point, within some Web-based protocol.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionApplication' => ['SoftwareApplication'], + 'actionPlatform' => ['URL', 'DigitalPlatformEnumeration', 'Text'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'application' => ['SoftwareApplication'], + 'contentType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'encodingType' => ['Text'], + 'httpMethod' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'urlTemplate' => ['Text'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionApplication' => 'An application that can complete the request.', + 'actionPlatform' => 'The high level platform(s) where the Action can be performed for the given URL. To specify a specific application or operating system instance, use actionApplication.', + '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.', + 'alternateName' => 'An alias for the item.', + 'application' => 'An application that can complete the request.', + 'contentType' => 'The supported content type(s) for an EntryPoint response.', + 'description' => 'A description of the item.', + '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.', + 'encodingType' => 'The supported encoding type(s) for an EntryPoint request.', + 'httpMethod' => 'An HTTP method that specifies the appropriate HTTP method for a request to an HTTP EntryPoint. Values are capitalized strings as used in HTTP.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'urlTemplate' => 'An url template (RFC6570) that will be used to construct the target of the execution of the action.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Enumeration.php b/src/models/jsonld/Enumeration.php index 0abf4d4df..a7294d46a 100644 --- a/src/models/jsonld/Enumeration.php +++ b/src/models/jsonld/Enumeration.php @@ -24,124 +24,124 @@ */ class Enumeration extends MetaJsonLd implements EnumerationInterface, IntangibleInterface, ThingInterface { - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Enumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Enumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Lists or enumerations—for example, a list of cuisines or music genres, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Enumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Enumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Lists or enumerations—for example, a list of cuisines or music genres, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Episode.php b/src/models/jsonld/Episode.php index d3ca85718..c97babae6 100644 --- a/src/models/jsonld/Episode.php +++ b/src/models/jsonld/Episode.php @@ -24,368 +24,368 @@ */ class Episode extends MetaJsonLd implements EpisodeInterface, CreativeWorkInterface, ThingInterface { - use EpisodeTrait; - use CreativeWorkTrait; - use ThingTrait; + use EpisodeTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Episode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Episode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Episode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Episode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A media episode (e.g. TV, radio, video game) which can be part of a series or season.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A media episode (e.g. TV, radio, video game) which can be part of a series or season.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'episodeNumber' => ['Text', 'Integer'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'episodeNumber' => ['Text', 'Integer'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Event.php b/src/models/jsonld/Event.php index 094cd9b87..465920df8 100644 --- a/src/models/jsonld/Event.php +++ b/src/models/jsonld/Event.php @@ -25,203 +25,203 @@ */ class Event extends MetaJsonLd implements EventInterface, ThingInterface { - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Event'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Event'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the [[offers]] property. Repeated events may be structured as separate Event objects.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Event'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Event'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the [[offers]] property. Repeated events may be structured as separate Event objects.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventAttendanceModeEnumeration.php b/src/models/jsonld/EventAttendanceModeEnumeration.php index c11f264e9..fe6a07683 100644 --- a/src/models/jsonld/EventAttendanceModeEnumeration.php +++ b/src/models/jsonld/EventAttendanceModeEnumeration.php @@ -24,125 +24,125 @@ */ class EventAttendanceModeEnumeration extends MetaJsonLd implements EventAttendanceModeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EventAttendanceModeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An EventAttendanceModeEnumeration value is one of potentially several modes of organising an event, relating to whether it is online or offline.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventAttendanceModeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An EventAttendanceModeEnumeration value is one of potentially several modes of organising an event, relating to whether it is online or offline.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventCancelled.php b/src/models/jsonld/EventCancelled.php index a09c6d02c..6ee76504a 100644 --- a/src/models/jsonld/EventCancelled.php +++ b/src/models/jsonld/EventCancelled.php @@ -25,127 +25,127 @@ */ class EventCancelled extends MetaJsonLd implements EventCancelledInterface, EventStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EventCancelledTrait; - use EventStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventCancelled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventCancelled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The event has been cancelled. If the event has multiple startDate values, all are assumed to be cancelled. Either startDate or previousStartDate may be used to specify the event\'s cancelled date(s).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventCancelledTrait; + use EventStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventCancelled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventCancelled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The event has been cancelled. If the event has multiple startDate values, all are assumed to be cancelled. Either startDate or previousStartDate may be used to specify the event\'s cancelled date(s).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventMovedOnline.php b/src/models/jsonld/EventMovedOnline.php index 7d499cf18..6068342b4 100644 --- a/src/models/jsonld/EventMovedOnline.php +++ b/src/models/jsonld/EventMovedOnline.php @@ -25,127 +25,127 @@ */ class EventMovedOnline extends MetaJsonLd implements EventMovedOnlineInterface, EventStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EventMovedOnlineTrait; - use EventStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventMovedOnline'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventMovedOnline'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the event was changed to allow online participation. See [[eventAttendanceMode]] for specifics of whether it is now fully or partially online.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventMovedOnlineTrait; + use EventStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventMovedOnline'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventMovedOnline'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the event was changed to allow online participation. See [[eventAttendanceMode]] for specifics of whether it is now fully or partially online.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventPostponed.php b/src/models/jsonld/EventPostponed.php index b98558885..ded89e88e 100644 --- a/src/models/jsonld/EventPostponed.php +++ b/src/models/jsonld/EventPostponed.php @@ -24,127 +24,127 @@ */ class EventPostponed extends MetaJsonLd implements EventPostponedInterface, EventStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EventPostponedTrait; - use EventStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventPostponed'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventPostponed'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The event has been postponed and no new date has been set. The event\'s previousStartDate should be set.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventPostponedTrait; + use EventStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventPostponed'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventPostponed'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The event has been postponed and no new date has been set. The event\'s previousStartDate should be set.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventRescheduled.php b/src/models/jsonld/EventRescheduled.php index 75a5754b2..7e8408a0b 100644 --- a/src/models/jsonld/EventRescheduled.php +++ b/src/models/jsonld/EventRescheduled.php @@ -26,127 +26,127 @@ */ class EventRescheduled extends MetaJsonLd implements EventRescheduledInterface, EventStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EventRescheduledTrait; - use EventStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventRescheduled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventRescheduled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The event has been rescheduled. The event\'s previousStartDate should be set to the old date and the startDate should be set to the event\'s new date. (If the event has been rescheduled multiple times, the previousStartDate property may be repeated.)'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventRescheduledTrait; + use EventStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventRescheduled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventRescheduled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The event has been rescheduled. The event\'s previousStartDate should be set to the old date and the startDate should be set to the event\'s new date. (If the event has been rescheduled multiple times, the previousStartDate property may be repeated.)'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventReservation.php b/src/models/jsonld/EventReservation.php index ca5052791..0b0a1b9c1 100644 --- a/src/models/jsonld/EventReservation.php +++ b/src/models/jsonld/EventReservation.php @@ -26,149 +26,149 @@ */ class EventReservation extends MetaJsonLd implements EventReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use EventReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation for an event like a concert, sporting event, or lecture.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation for an event like a concert, sporting event, or lecture.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventScheduled.php b/src/models/jsonld/EventScheduled.php index 50ec1af2c..5358e747e 100644 --- a/src/models/jsonld/EventScheduled.php +++ b/src/models/jsonld/EventScheduled.php @@ -24,127 +24,127 @@ */ class EventScheduled extends MetaJsonLd implements EventScheduledInterface, EventStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EventScheduledTrait; - use EventStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventScheduled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventScheduled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The event is taking place or has taken place on the startDate as scheduled. Use of this value is optional, as it is assumed by default.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventScheduledTrait; + use EventStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventScheduled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventScheduled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The event is taking place or has taken place on the startDate as scheduled. Use of this value is optional, as it is assumed by default.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventSeries.php b/src/models/jsonld/EventSeries.php index 462ce5b2f..944312825 100644 --- a/src/models/jsonld/EventSeries.php +++ b/src/models/jsonld/EventSeries.php @@ -38,206 +38,206 @@ */ class EventSeries extends MetaJsonLd implements EventSeriesInterface, EventInterface, ThingInterface, SeriesInterface, IntangibleInterface { - use EventSeriesTrait; - use EventTrait; - use ThingTrait; - use SeriesTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventSeries'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventSeries'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A series of [[Event]]s. Included events can relate with the series using the [[superEvent]] property.\n\nAn EventSeries is a collection of events that share some unifying characteristic. For example, \"The Olympic Games\" is a series, which\nis repeated regularly. The \"2012 London Olympics\" can be presented both as an [[Event]] in the series \"Olympic Games\", and as an\n[[EventSeries]] that included a number of sporting competitions as Events.\n\nThe nature of the association between the events in an [[EventSeries]] can vary, but typical examples could\ninclude a thematic event series (e.g. topical meetups or classes), or a series of regular events that share a location, attendee group and/or organizers.\n\nEventSeries has been defined as a kind of Event to make it easy for publishers to use it in an Event context without\nworrying about which kinds of series are really event-like enough to call an Event. In general an EventSeries\nmay seem more Event-like when the period of time is compact and when aspects such as location are fixed, but\nit may also sometimes prove useful to describe a longer-term series as an Event.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventSeriesTrait; + use EventTrait; + use ThingTrait; + use SeriesTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventSeries'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventSeries'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A series of [[Event]]s. Included events can relate with the series using the [[superEvent]] property.\n\nAn EventSeries is a collection of events that share some unifying characteristic. For example, \"The Olympic Games\" is a series, which\nis repeated regularly. The \"2012 London Olympics\" can be presented both as an [[Event]] in the series \"Olympic Games\", and as an\n[[EventSeries]] that included a number of sporting competitions as Events.\n\nThe nature of the association between the events in an [[EventSeries]] can vary, but typical examples could\ninclude a thematic event series (e.g. topical meetups or classes), or a series of regular events that share a location, attendee group and/or organizers.\n\nEventSeries has been defined as a kind of Event to make it easy for publishers to use it in an Event context without\nworrying about which kinds of series are really event-like enough to call an Event. In general an EventSeries\nmay seem more Event-like when the period of time is compact and when aspects such as location are fixed, but\nit may also sometimes prove useful to describe a longer-term series as an Event.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventStatusType.php b/src/models/jsonld/EventStatusType.php index 1b4e10833..afe5fd96f 100644 --- a/src/models/jsonld/EventStatusType.php +++ b/src/models/jsonld/EventStatusType.php @@ -24,126 +24,126 @@ */ class EventStatusType extends MetaJsonLd implements EventStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EventStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'EventStatusType is an enumeration type whose instances represent several states that an Event may be in.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'EventStatusType is an enumeration type whose instances represent several states that an Event may be in.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EventVenue.php b/src/models/jsonld/EventVenue.php index b39c54dc0..d19a51d27 100644 --- a/src/models/jsonld/EventVenue.php +++ b/src/models/jsonld/EventVenue.php @@ -23,215 +23,215 @@ */ class EventVenue extends MetaJsonLd implements EventVenueInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use EventVenueTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EventVenue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EventVenue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An event venue.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EventVenueTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EventVenue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EventVenue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An event venue.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EvidenceLevelA.php b/src/models/jsonld/EvidenceLevelA.php index 6aa22023b..2234610d8 100644 --- a/src/models/jsonld/EvidenceLevelA.php +++ b/src/models/jsonld/EvidenceLevelA.php @@ -23,127 +23,127 @@ */ class EvidenceLevelA extends MetaJsonLd implements EvidenceLevelAInterface, MedicalEvidenceLevelInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EvidenceLevelATrait; - use MedicalEvidenceLevelTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EvidenceLevelA'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EvidenceLevelA'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data derived from multiple randomized clinical trials or meta-analyses.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EvidenceLevelATrait; + use MedicalEvidenceLevelTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EvidenceLevelA'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EvidenceLevelA'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data derived from multiple randomized clinical trials or meta-analyses.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EvidenceLevelB.php b/src/models/jsonld/EvidenceLevelB.php index 9e34dd657..e6c9e9139 100644 --- a/src/models/jsonld/EvidenceLevelB.php +++ b/src/models/jsonld/EvidenceLevelB.php @@ -23,127 +23,127 @@ */ class EvidenceLevelB extends MetaJsonLd implements EvidenceLevelBInterface, MedicalEvidenceLevelInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EvidenceLevelBTrait; - use MedicalEvidenceLevelTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EvidenceLevelB'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EvidenceLevelB'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data derived from a single randomized trial, or nonrandomized studies.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EvidenceLevelBTrait; + use MedicalEvidenceLevelTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EvidenceLevelB'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EvidenceLevelB'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data derived from a single randomized trial, or nonrandomized studies.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/EvidenceLevelC.php b/src/models/jsonld/EvidenceLevelC.php index 2fc947c0e..ff2f34df3 100644 --- a/src/models/jsonld/EvidenceLevelC.php +++ b/src/models/jsonld/EvidenceLevelC.php @@ -23,127 +23,127 @@ */ class EvidenceLevelC extends MetaJsonLd implements EvidenceLevelCInterface, MedicalEvidenceLevelInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use EvidenceLevelCTrait; - use MedicalEvidenceLevelTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'EvidenceLevelC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/EvidenceLevelC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Only consensus opinion of experts, case studies, or standard-of-care.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EvidenceLevelCTrait; + use MedicalEvidenceLevelTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'EvidenceLevelC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/EvidenceLevelC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Only consensus opinion of experts, case studies, or standard-of-care.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ExchangeRateSpecification.php b/src/models/jsonld/ExchangeRateSpecification.php index 2ba178e12..70940856d 100644 --- a/src/models/jsonld/ExchangeRateSpecification.php +++ b/src/models/jsonld/ExchangeRateSpecification.php @@ -23,129 +23,129 @@ */ class ExchangeRateSpecification extends MetaJsonLd implements ExchangeRateSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use ExchangeRateSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ExchangeRateSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ExchangeRateSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A structured value representing exchange rate.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'currency' => ['Text'], - 'currentExchangeRate' => ['UnitPriceSpecification'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'exchangeRateSpread' => ['MonetaryAmount', 'Number'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'currency' => 'The currency in which the monetary amount is expressed. 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".', - 'currentExchangeRate' => 'The current price of a currency.', - 'description' => 'A description of the item.', - '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.', - 'exchangeRateSpread' => 'The difference between the price at which a broker or other intermediary buys and sells foreign currency.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ExchangeRateSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ExchangeRateSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ExchangeRateSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A structured value representing exchange rate.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'currency' => ['Text'], + 'currentExchangeRate' => ['UnitPriceSpecification'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'exchangeRateSpread' => ['MonetaryAmount', 'Number'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'currency' => 'The currency in which the monetary amount is expressed. 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".', + 'currentExchangeRate' => 'The current price of a currency.', + 'description' => 'A description of the item.', + '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.', + 'exchangeRateSpread' => 'The difference between the price at which a broker or other intermediary buys and sells foreign currency.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ExchangeRefund.php b/src/models/jsonld/ExchangeRefund.php index 4f27f9305..7c9e0868f 100644 --- a/src/models/jsonld/ExchangeRefund.php +++ b/src/models/jsonld/ExchangeRefund.php @@ -23,126 +23,126 @@ */ class ExchangeRefund extends MetaJsonLd implements ExchangeRefundInterface, RefundTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ExchangeRefundTrait; - use RefundTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ExchangeRefund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ExchangeRefund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that a refund can be done as an exchange for the same product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ExchangeRefundTrait; + use RefundTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ExchangeRefund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ExchangeRefund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that a refund can be done as an exchange for the same product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ExerciseAction.php b/src/models/jsonld/ExerciseAction.php index 74ea08d99..4ded191d0 100644 --- a/src/models/jsonld/ExerciseAction.php +++ b/src/models/jsonld/ExerciseAction.php @@ -24,177 +24,177 @@ */ class ExerciseAction extends MetaJsonLd implements ExerciseActionInterface, PlayActionInterface, ActionInterface, ThingInterface { - use ExerciseActionTrait; - use PlayActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ExerciseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ExerciseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlayAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of participating in exertive activity for the purposes of improving health and fitness.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'audience' => ['Audience'], - 'course' => ['Place'], - 'description' => ['Text'], - 'diet' => ['Diet'], - 'disambiguatingDescription' => ['Text'], - 'distance' => ['Distance'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'exerciseCourse' => ['Place'], - 'exercisePlan' => ['ExercisePlan'], - 'exerciseRelatedDiet' => ['Diet'], - 'exerciseType' => ['Text'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'opponent' => ['Person'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'sportsActivityLocation' => ['SportsActivityLocation'], - 'sportsEvent' => ['SportsEvent'], - 'sportsTeam' => ['SportsTeam'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'course' => 'A sub property of location. The course where this action was taken.', - 'description' => 'A description of the item.', - 'diet' => 'A sub property of instrument. The diet used in this action.', - '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.', - 'distance' => 'The distance travelled, e.g. exercising or travelling.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'exerciseCourse' => 'A sub property of location. The course where this action was taken.', - 'exercisePlan' => 'A sub property of instrument. The exercise plan used on this action.', - 'exerciseRelatedDiet' => 'A sub property of instrument. The diet used in this action.', - 'exerciseType' => 'Type(s) of exercise or activity, such as strength training, flexibility training, aerobics, cardiac rehabilitation, etc.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'opponent' => 'A sub property of participant. The opponent on this action.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'sportsActivityLocation' => 'A sub property of location. The sports activity location where this action occurred.', - 'sportsEvent' => 'A sub property of location. The sports event where this action occurred.', - 'sportsTeam' => 'A sub property of participant. The sports team that participated on this action.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ExerciseActionTrait; + use PlayActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ExerciseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ExerciseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlayAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of participating in exertive activity for the purposes of improving health and fitness.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'audience' => ['Audience'], + 'course' => ['Place'], + 'description' => ['Text'], + 'diet' => ['Diet'], + 'disambiguatingDescription' => ['Text'], + 'distance' => ['Distance'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'exerciseCourse' => ['Place'], + 'exercisePlan' => ['ExercisePlan'], + 'exerciseRelatedDiet' => ['Diet'], + 'exerciseType' => ['Text'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'opponent' => ['Person'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'sportsActivityLocation' => ['SportsActivityLocation'], + 'sportsEvent' => ['SportsEvent'], + 'sportsTeam' => ['SportsTeam'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'course' => 'A sub property of location. The course where this action was taken.', + 'description' => 'A description of the item.', + 'diet' => 'A sub property of instrument. The diet used in this action.', + '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.', + 'distance' => 'The distance travelled, e.g. exercising or travelling.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'exerciseCourse' => 'A sub property of location. The course where this action was taken.', + 'exercisePlan' => 'A sub property of instrument. The exercise plan used on this action.', + 'exerciseRelatedDiet' => 'A sub property of instrument. The diet used in this action.', + 'exerciseType' => 'Type(s) of exercise or activity, such as strength training, flexibility training, aerobics, cardiac rehabilitation, etc.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'opponent' => 'A sub property of participant. The opponent on this action.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'sportsActivityLocation' => 'A sub property of location. The sports activity location where this action occurred.', + 'sportsEvent' => 'A sub property of location. The sports event where this action occurred.', + 'sportsTeam' => 'A sub property of participant. The sports team that participated on this action.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ExerciseGym.php b/src/models/jsonld/ExerciseGym.php index 9c5cbeb70..ce0bc8ee1 100644 --- a/src/models/jsonld/ExerciseGym.php +++ b/src/models/jsonld/ExerciseGym.php @@ -23,331 +23,331 @@ */ class ExerciseGym extends MetaJsonLd implements ExerciseGymInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ExerciseGymTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ExerciseGymTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ExerciseGym'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ExerciseGym'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ExerciseGym'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ExerciseGym'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A gym.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A gym.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ExercisePlan.php b/src/models/jsonld/ExercisePlan.php index 9e7399904..681a79a4d 100644 --- a/src/models/jsonld/ExercisePlan.php +++ b/src/models/jsonld/ExercisePlan.php @@ -25,387 +25,387 @@ */ class ExercisePlan extends MetaJsonLd implements ExercisePlanInterface, CreativeWorkInterface, ThingInterface, PhysicalActivityInterface, LifestyleModificationInterface, MedicalEntityInterface { - use ExercisePlanTrait; - use CreativeWorkTrait; - use ThingTrait; - use PhysicalActivityTrait; - use LifestyleModificationTrait; - use MedicalEntityTrait; + use ExercisePlanTrait; + use CreativeWorkTrait; + use ThingTrait; + use PhysicalActivityTrait; + use LifestyleModificationTrait; + use MedicalEntityTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ExercisePlan'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ExercisePlan'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ExercisePlan'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ExercisePlan'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Fitness-related activity designed for a specific health-related purpose, including defined exercise routines as well as activity prescribed by a clinician.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Fitness-related activity designed for a specific health-related purpose, including defined exercise routines as well as activity prescribed by a clinician.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'activityDuration' => ['QuantitativeValue', 'Duration'], - 'activityFrequency' => ['QuantitativeValue', 'Text'], - 'additionalType' => ['URL'], - 'additionalVariable' => ['Text'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'code' => ['MedicalCode'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'epidemiology' => ['Text'], - 'exampleOfWork' => ['CreativeWork'], - 'exerciseType' => ['Text'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'guideline' => ['MedicalGuideline'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'intensity' => ['QuantitativeValue', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'medicineSystem' => ['MedicineSystem'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pathophysiology' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recognizingAuthority' => ['Organization'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'repetitions' => ['Number', 'QuantitativeValue'], - 'restPeriods' => ['QuantitativeValue', 'Text'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'workload' => ['Energy', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'activityDuration' => ['QuantitativeValue', 'Duration'], + 'activityFrequency' => ['QuantitativeValue', 'Text'], + 'additionalType' => ['URL'], + 'additionalVariable' => ['Text'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'code' => ['MedicalCode'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'epidemiology' => ['Text'], + 'exampleOfWork' => ['CreativeWork'], + 'exerciseType' => ['Text'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'guideline' => ['MedicalGuideline'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'intensity' => ['QuantitativeValue', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'medicineSystem' => ['MedicineSystem'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pathophysiology' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recognizingAuthority' => ['Organization'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'repetitions' => ['Number', 'QuantitativeValue'], + 'restPeriods' => ['QuantitativeValue', 'Text'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'workload' => ['Energy', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'activityDuration' => 'Length of time to engage in the activity.', - 'activityFrequency' => 'How often one should engage in the activity.', - '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.', - 'additionalVariable' => 'Any additional component of the exercise prescription that may need to be articulated to the patient. This may include the order of exercises, the number of repetitions of movement, quantitative distance, progressions over time, etc.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'exerciseType' => 'Type(s) of exercise or activity, such as strength training, flexibility training, aerobics, cardiac rehabilitation, etc.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'guideline' => 'A medical guideline related to this entity.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'intensity' => 'Quantitative measure gauging the degree of force involved in the exercise, for example, heartbeats per minute. May include the velocity of the movement.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'repetitions' => 'Number of times one should repeat the activity.', - 'restPeriods' => 'How often one should break from the activity.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'workload' => 'Quantitative measure of the physiologic output of the exercise; also referred to as energy expenditure.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'activityDuration' => 'Length of time to engage in the activity.', + 'activityFrequency' => 'How often one should engage in the activity.', + '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.', + 'additionalVariable' => 'Any additional component of the exercise prescription that may need to be articulated to the patient. This may include the order of exercises, the number of repetitions of movement, quantitative distance, progressions over time, etc.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'exerciseType' => 'Type(s) of exercise or activity, such as strength training, flexibility training, aerobics, cardiac rehabilitation, etc.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'guideline' => 'A medical guideline related to this entity.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'intensity' => 'Quantitative measure gauging the degree of force involved in the exercise, for example, heartbeats per minute. May include the velocity of the movement.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'repetitions' => 'Number of times one should repeat the activity.', + 'restPeriods' => 'How often one should break from the activity.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'workload' => 'Quantitative measure of the physiologic output of the exercise; also referred to as energy expenditure.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ExhibitionEvent.php b/src/models/jsonld/ExhibitionEvent.php index cd437e112..22f83cb37 100644 --- a/src/models/jsonld/ExhibitionEvent.php +++ b/src/models/jsonld/ExhibitionEvent.php @@ -24,204 +24,204 @@ */ class ExhibitionEvent extends MetaJsonLd implements ExhibitionEventInterface, EventInterface, ThingInterface { - use ExhibitionEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ExhibitionEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ExhibitionEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Exhibition event, e.g. at a museum, library, archive, tradeshow, ...'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ExhibitionEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ExhibitionEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ExhibitionEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Exhibition event, e.g. at a museum, library, archive, tradeshow, ...'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Eye.php b/src/models/jsonld/Eye.php index 899876bde..978c70ee9 100644 --- a/src/models/jsonld/Eye.php +++ b/src/models/jsonld/Eye.php @@ -23,157 +23,157 @@ */ class Eye extends MetaJsonLd implements EyeInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use EyeTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Eye'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Eye'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Eye or ophthalmological function assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use EyeTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Eye'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Eye'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Eye or ophthalmological function assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FAQPage.php b/src/models/jsonld/FAQPage.php index c2770db73..e742c3508 100644 --- a/src/models/jsonld/FAQPage.php +++ b/src/models/jsonld/FAQPage.php @@ -24,367 +24,367 @@ */ class FAQPage extends MetaJsonLd implements FAQPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use FAQPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use FAQPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FAQPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FAQPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FAQPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FAQPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[FAQPage]] is a [[WebPage]] presenting one or more "[Frequently asked questions](https://en.wikipedia.org/wiki/FAQ)" (see also [[QAPage]]).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[FAQPage]] is a [[WebPage]] presenting one or more "[Frequently asked questions](https://en.wikipedia.org/wiki/FAQ)" (see also [[QAPage]]).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/FDAcategoryA.php b/src/models/jsonld/FDAcategoryA.php index 3d1d089ba..74691983a 100644 --- a/src/models/jsonld/FDAcategoryA.php +++ b/src/models/jsonld/FDAcategoryA.php @@ -26,127 +26,127 @@ */ class FDAcategoryA extends MetaJsonLd implements FDAcategoryAInterface, DrugPregnancyCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FDAcategoryATrait; - use DrugPregnancyCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FDAcategoryA'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FDAcategoryA'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A designation by the US FDA signifying that adequate and well-controlled studies have failed to demonstrate a risk to the fetus in the first trimester of pregnancy (and there is no evidence of risk in later trimesters).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FDAcategoryATrait; + use DrugPregnancyCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FDAcategoryA'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FDAcategoryA'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A designation by the US FDA signifying that adequate and well-controlled studies have failed to demonstrate a risk to the fetus in the first trimester of pregnancy (and there is no evidence of risk in later trimesters).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FDAcategoryB.php b/src/models/jsonld/FDAcategoryB.php index 59fd13501..77a306cb5 100644 --- a/src/models/jsonld/FDAcategoryB.php +++ b/src/models/jsonld/FDAcategoryB.php @@ -25,127 +25,127 @@ */ class FDAcategoryB extends MetaJsonLd implements FDAcategoryBInterface, DrugPregnancyCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FDAcategoryBTrait; - use DrugPregnancyCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FDAcategoryB'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FDAcategoryB'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A designation by the US FDA signifying that animal reproduction studies have failed to demonstrate a risk to the fetus and there are no adequate and well-controlled studies in pregnant women.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FDAcategoryBTrait; + use DrugPregnancyCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FDAcategoryB'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FDAcategoryB'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A designation by the US FDA signifying that animal reproduction studies have failed to demonstrate a risk to the fetus and there are no adequate and well-controlled studies in pregnant women.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FDAcategoryC.php b/src/models/jsonld/FDAcategoryC.php index c7f16e9b9..cff2ca913 100644 --- a/src/models/jsonld/FDAcategoryC.php +++ b/src/models/jsonld/FDAcategoryC.php @@ -26,127 +26,127 @@ */ class FDAcategoryC extends MetaJsonLd implements FDAcategoryCInterface, DrugPregnancyCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FDAcategoryCTrait; - use DrugPregnancyCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FDAcategoryC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FDAcategoryC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A designation by the US FDA signifying that animal reproduction studies have shown an adverse effect on the fetus and there are no adequate and well-controlled studies in humans, but potential benefits may warrant use of the drug in pregnant women despite potential risks.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FDAcategoryCTrait; + use DrugPregnancyCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FDAcategoryC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FDAcategoryC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A designation by the US FDA signifying that animal reproduction studies have shown an adverse effect on the fetus and there are no adequate and well-controlled studies in humans, but potential benefits may warrant use of the drug in pregnant women despite potential risks.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FDAcategoryD.php b/src/models/jsonld/FDAcategoryD.php index aca28a4c9..a3d362869 100644 --- a/src/models/jsonld/FDAcategoryD.php +++ b/src/models/jsonld/FDAcategoryD.php @@ -26,127 +26,127 @@ */ class FDAcategoryD extends MetaJsonLd implements FDAcategoryDInterface, DrugPregnancyCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FDAcategoryDTrait; - use DrugPregnancyCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FDAcategoryD'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FDAcategoryD'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A designation by the US FDA signifying that there is positive evidence of human fetal risk based on adverse reaction data from investigational or marketing experience or studies in humans, but potential benefits may warrant use of the drug in pregnant women despite potential risks.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FDAcategoryDTrait; + use DrugPregnancyCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FDAcategoryD'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FDAcategoryD'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A designation by the US FDA signifying that there is positive evidence of human fetal risk based on adverse reaction data from investigational or marketing experience or studies in humans, but potential benefits may warrant use of the drug in pregnant women despite potential risks.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FDAcategoryX.php b/src/models/jsonld/FDAcategoryX.php index aba89b7f5..6948ea0e1 100644 --- a/src/models/jsonld/FDAcategoryX.php +++ b/src/models/jsonld/FDAcategoryX.php @@ -27,127 +27,127 @@ */ class FDAcategoryX extends MetaJsonLd implements FDAcategoryXInterface, DrugPregnancyCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FDAcategoryXTrait; - use DrugPregnancyCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FDAcategoryX'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FDAcategoryX'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A designation by the US FDA signifying that studies in animals or humans have demonstrated fetal abnormalities and/or there is positive evidence of human fetal risk based on adverse reaction data from investigational or marketing experience, and the risks involved in use of the drug in pregnant women clearly outweigh potential benefits.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FDAcategoryXTrait; + use DrugPregnancyCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FDAcategoryX'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FDAcategoryX'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A designation by the US FDA signifying that studies in animals or humans have demonstrated fetal abnormalities and/or there is positive evidence of human fetal risk based on adverse reaction data from investigational or marketing experience, and the risks involved in use of the drug in pregnant women clearly outweigh potential benefits.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FDAnotEvaluated.php b/src/models/jsonld/FDAnotEvaluated.php index 2c8bb75fb..449b9601d 100644 --- a/src/models/jsonld/FDAnotEvaluated.php +++ b/src/models/jsonld/FDAnotEvaluated.php @@ -24,127 +24,127 @@ */ class FDAnotEvaluated extends MetaJsonLd implements FDAnotEvaluatedInterface, DrugPregnancyCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FDAnotEvaluatedTrait; - use DrugPregnancyCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FDAnotEvaluated'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FDAnotEvaluated'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPregnancyCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A designation that the drug in question has not been assigned a pregnancy category designation by the US FDA.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FDAnotEvaluatedTrait; + use DrugPregnancyCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FDAnotEvaluated'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FDAnotEvaluated'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPregnancyCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A designation that the drug in question has not been assigned a pregnancy category designation by the US FDA.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FMRadioChannel.php b/src/models/jsonld/FMRadioChannel.php index f4d38ec88..44cd16be0 100644 --- a/src/models/jsonld/FMRadioChannel.php +++ b/src/models/jsonld/FMRadioChannel.php @@ -23,136 +23,136 @@ */ class FMRadioChannel extends MetaJsonLd implements FMRadioChannelInterface, RadioChannelInterface, BroadcastChannelInterface, IntangibleInterface, ThingInterface { - use FMRadioChannelTrait; - use RadioChannelTrait; - use BroadcastChannelTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FMRadioChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FMRadioChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RadioChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A radio channel that uses FM.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'broadcastChannelId' => ['Text'], - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], - 'broadcastServiceTier' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'genre' => ['Text', 'URL'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inBroadcastLineup' => ['CableOrSatelliteService'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'providesBroadcastService' => ['BroadcastService'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', - '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".', - 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', - 'description' => 'A description of the item.', - '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.', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'providesBroadcastService' => 'The BroadcastService offered on this channel.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FMRadioChannelTrait; + use RadioChannelTrait; + use BroadcastChannelTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FMRadioChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FMRadioChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RadioChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A radio channel that uses FM.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'broadcastChannelId' => ['Text'], + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], + 'broadcastServiceTier' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'genre' => ['Text', 'URL'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inBroadcastLineup' => ['CableOrSatelliteService'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'providesBroadcastService' => ['BroadcastService'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', + '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".', + 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', + 'description' => 'A description of the item.', + '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.', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'providesBroadcastService' => 'The BroadcastService offered on this channel.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FailedActionStatus.php b/src/models/jsonld/FailedActionStatus.php index 41bcbb985..c91057c81 100644 --- a/src/models/jsonld/FailedActionStatus.php +++ b/src/models/jsonld/FailedActionStatus.php @@ -24,127 +24,127 @@ */ class FailedActionStatus extends MetaJsonLd implements FailedActionStatusInterface, ActionStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FailedActionStatusTrait; - use ActionStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FailedActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FailedActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An action that failed to complete. The action\'s error property and the HTTP return code contain more information about the failure.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FailedActionStatusTrait; + use ActionStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FailedActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FailedActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An action that failed to complete. The action\'s error property and the HTTP return code contain more information about the failure.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FastFoodRestaurant.php b/src/models/jsonld/FastFoodRestaurant.php index a9b3de1f8..4e74b01a4 100644 --- a/src/models/jsonld/FastFoodRestaurant.php +++ b/src/models/jsonld/FastFoodRestaurant.php @@ -23,341 +23,341 @@ */ class FastFoodRestaurant extends MetaJsonLd implements FastFoodRestaurantInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use FastFoodRestaurantTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use FastFoodRestaurantTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FastFoodRestaurant'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FastFoodRestaurant'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FastFoodRestaurant'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FastFoodRestaurant'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A fast-food restaurant.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A fast-food restaurant.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Female.php b/src/models/jsonld/Female.php index 844e2aba8..4fe85a238 100644 --- a/src/models/jsonld/Female.php +++ b/src/models/jsonld/Female.php @@ -23,126 +23,126 @@ */ class Female extends MetaJsonLd implements FemaleInterface, GenderTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FemaleTrait; - use GenderTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Female'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Female'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GenderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The female gender.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FemaleTrait; + use GenderTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Female'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Female'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GenderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The female gender.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Festival.php b/src/models/jsonld/Festival.php index 435a44da6..3f1d04a20 100644 --- a/src/models/jsonld/Festival.php +++ b/src/models/jsonld/Festival.php @@ -23,204 +23,204 @@ */ class Festival extends MetaJsonLd implements FestivalInterface, EventInterface, ThingInterface { - use FestivalTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Festival'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Festival'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Festival.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FestivalTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Festival'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Festival'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Festival.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FilmAction.php b/src/models/jsonld/FilmAction.php index 8b257d3cf..9dca65279 100644 --- a/src/models/jsonld/FilmAction.php +++ b/src/models/jsonld/FilmAction.php @@ -23,147 +23,147 @@ */ class FilmAction extends MetaJsonLd implements FilmActionInterface, CreateActionInterface, ActionInterface, ThingInterface { - use FilmActionTrait; - use CreateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FilmAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FilmAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of capturing sound and moving images on film, video, or digitally.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FilmActionTrait; + use CreateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FilmAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FilmAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of capturing sound and moving images on film, video, or digitally.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FinancialProduct.php b/src/models/jsonld/FinancialProduct.php index f6531b087..715cf0f78 100644 --- a/src/models/jsonld/FinancialProduct.php +++ b/src/models/jsonld/FinancialProduct.php @@ -26,177 +26,177 @@ */ class FinancialProduct extends MetaJsonLd implements FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FinancialProduct'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FinancialProduct'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A product provided to consumers and businesses by financial institutions such as banks, insurance companies, brokerage firms, consumer finance companies, and investment companies which comprise the financial services industry.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FinancialProduct'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FinancialProduct'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A product provided to consumers and businesses by financial institutions such as banks, insurance companies, brokerage firms, consumer finance companies, and investment companies which comprise the financial services industry.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FinancialService.php b/src/models/jsonld/FinancialService.php index 6f2f51072..dc7c0ef1b 100644 --- a/src/models/jsonld/FinancialService.php +++ b/src/models/jsonld/FinancialService.php @@ -23,332 +23,332 @@ */ class FinancialService extends MetaJsonLd implements FinancialServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use FinancialServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use FinancialServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FinancialService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FinancialService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FinancialService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FinancialService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Financial services business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Financial services business.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/FindAction.php b/src/models/jsonld/FindAction.php index eec42493c..dd6cb454e 100644 --- a/src/models/jsonld/FindAction.php +++ b/src/models/jsonld/FindAction.php @@ -24,146 +24,146 @@ */ class FindAction extends MetaJsonLd implements FindActionInterface, ActionInterface, ThingInterface { - use FindActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FindAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FindAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of finding an object.\n\nRelated actions:\n\n* [[SearchAction]]: FindAction is generally lead by a SearchAction, but not necessarily.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FindActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FindAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FindAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of finding an object.\n\nRelated actions:\n\n* [[SearchAction]]: FindAction is generally lead by a SearchAction, but not necessarily.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FireStation.php b/src/models/jsonld/FireStation.php index e4126fb50..ef8b13d2f 100644 --- a/src/models/jsonld/FireStation.php +++ b/src/models/jsonld/FireStation.php @@ -23,332 +23,332 @@ */ class FireStation extends MetaJsonLd implements FireStationInterface, EmergencyServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, CivicStructureInterface { - use FireStationTrait; - use EmergencyServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use CivicStructureTrait; + use FireStationTrait; + use EmergencyServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use CivicStructureTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FireStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FireStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FireStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FireStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EmergencyService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EmergencyService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A fire station. With firemen.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A fire station. With firemen.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Flexibility.php b/src/models/jsonld/Flexibility.php index 5e5262933..7b5c3be03 100644 --- a/src/models/jsonld/Flexibility.php +++ b/src/models/jsonld/Flexibility.php @@ -24,126 +24,126 @@ */ class Flexibility extends MetaJsonLd implements FlexibilityInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FlexibilityTrait; - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Flexibility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Flexibility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Physical activity that is engaged in to improve joint and muscle flexibility.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FlexibilityTrait; + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Flexibility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Flexibility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Physical activity that is engaged in to improve joint and muscle flexibility.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Flight.php b/src/models/jsonld/Flight.php index c94d420eb..0f19ee8f0 100644 --- a/src/models/jsonld/Flight.php +++ b/src/models/jsonld/Flight.php @@ -23,167 +23,167 @@ */ class Flight extends MetaJsonLd implements FlightInterface, TripInterface, IntangibleInterface, ThingInterface { - use FlightTrait; - use TripTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Flight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Flight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An airline flight.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aircraft' => ['Text', 'Vehicle'], - 'alternateName' => ['Text'], - 'arrivalAirport' => ['Airport'], - 'arrivalGate' => ['Text'], - 'arrivalTerminal' => ['Text'], - 'arrivalTime' => ['DateTime', 'Time'], - 'boardingPolicy' => ['BoardingPolicyType'], - 'carrier' => ['Organization'], - 'departureAirport' => ['Airport'], - 'departureGate' => ['Text'], - 'departureTerminal' => ['Text'], - 'departureTime' => ['Time', 'DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'estimatedFlightDuration' => ['Duration', 'Text'], - 'flightDistance' => ['Text', 'Distance'], - 'flightNumber' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itinerary' => ['ItemList', 'Place'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'mealService' => ['Text'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfTrip' => ['Trip'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'subTrip' => ['Trip'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'webCheckinTime' => ['DateTime'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aircraft' => 'The kind of aircraft (e.g., "Boeing 747").', - 'alternateName' => 'An alias for the item.', - 'arrivalAirport' => 'The airport where the flight terminates.', - 'arrivalGate' => 'Identifier of the flight\'s arrival gate.', - 'arrivalTerminal' => 'Identifier of the flight\'s arrival terminal.', - 'arrivalTime' => 'The expected arrival time.', - 'boardingPolicy' => 'The type of boarding policy used by the airline (e.g. zone-based or group-based).', - 'carrier' => '\'carrier\' is an out-dated term indicating the \'provider\' for parcel delivery and flights.', - 'departureAirport' => 'The airport where the flight originates.', - 'departureGate' => 'Identifier of the flight\'s departure gate.', - 'departureTerminal' => 'Identifier of the flight\'s departure terminal.', - 'departureTime' => 'The expected departure time.', - 'description' => 'A description of the item.', - '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.', - 'estimatedFlightDuration' => 'The estimated time the flight will take.', - 'flightDistance' => 'The distance of the flight.', - 'flightNumber' => 'The unique identifier for a flight including the airline IATA code. For example, if describing United flight 110, where the IATA code for United is \'UA\', the flightNumber is \'UA110\'.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', - '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.', - 'mealService' => 'Description of the meals that will be provided or available for purchase.', - 'name' => 'The name of the item.', - '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. ', - 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'webCheckinTime' => 'The time when a passenger can check into the flight online.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FlightTrait; + use TripTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Flight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Flight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An airline flight.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aircraft' => ['Text', 'Vehicle'], + 'alternateName' => ['Text'], + 'arrivalAirport' => ['Airport'], + 'arrivalGate' => ['Text'], + 'arrivalTerminal' => ['Text'], + 'arrivalTime' => ['DateTime', 'Time'], + 'boardingPolicy' => ['BoardingPolicyType'], + 'carrier' => ['Organization'], + 'departureAirport' => ['Airport'], + 'departureGate' => ['Text'], + 'departureTerminal' => ['Text'], + 'departureTime' => ['Time', 'DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'estimatedFlightDuration' => ['Duration', 'Text'], + 'flightDistance' => ['Text', 'Distance'], + 'flightNumber' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itinerary' => ['ItemList', 'Place'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'mealService' => ['Text'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfTrip' => ['Trip'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'subTrip' => ['Trip'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'webCheckinTime' => ['DateTime'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aircraft' => 'The kind of aircraft (e.g., "Boeing 747").', + 'alternateName' => 'An alias for the item.', + 'arrivalAirport' => 'The airport where the flight terminates.', + 'arrivalGate' => 'Identifier of the flight\'s arrival gate.', + 'arrivalTerminal' => 'Identifier of the flight\'s arrival terminal.', + 'arrivalTime' => 'The expected arrival time.', + 'boardingPolicy' => 'The type of boarding policy used by the airline (e.g. zone-based or group-based).', + 'carrier' => '\'carrier\' is an out-dated term indicating the \'provider\' for parcel delivery and flights.', + 'departureAirport' => 'The airport where the flight originates.', + 'departureGate' => 'Identifier of the flight\'s departure gate.', + 'departureTerminal' => 'Identifier of the flight\'s departure terminal.', + 'departureTime' => 'The expected departure time.', + 'description' => 'A description of the item.', + '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.', + 'estimatedFlightDuration' => 'The estimated time the flight will take.', + 'flightDistance' => 'The distance of the flight.', + 'flightNumber' => 'The unique identifier for a flight including the airline IATA code. For example, if describing United flight 110, where the IATA code for United is \'UA\', the flightNumber is \'UA110\'.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', + '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.', + 'mealService' => 'Description of the meals that will be provided or available for purchase.', + 'name' => 'The name of the item.', + '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. ', + 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'webCheckinTime' => 'The time when a passenger can check into the flight online.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FlightReservation.php b/src/models/jsonld/FlightReservation.php index 112031b5c..57de2816f 100644 --- a/src/models/jsonld/FlightReservation.php +++ b/src/models/jsonld/FlightReservation.php @@ -26,157 +26,157 @@ */ class FlightReservation extends MetaJsonLd implements FlightReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use FlightReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FlightReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FlightReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation for air travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'boardingGroup' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'passengerPriorityStatus' => ['Text', 'QualitativeValue'], - 'passengerSequenceNumber' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'securityScreening' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'boardingGroup' => 'The airline-specific indicator of boarding order / preference.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'passengerPriorityStatus' => 'The priority status assigned to a passenger for security or boarding (e.g. FastTrack or Priority).', - 'passengerSequenceNumber' => 'The passenger\'s sequence number as assigned by the airline.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'securityScreening' => 'The type of security screening the passenger is subject to.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FlightReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FlightReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FlightReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation for air travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'boardingGroup' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'passengerPriorityStatus' => ['Text', 'QualitativeValue'], + 'passengerSequenceNumber' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'securityScreening' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'boardingGroup' => 'The airline-specific indicator of boarding order / preference.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'passengerPriorityStatus' => 'The priority status assigned to a passenger for security or boarding (e.g. FastTrack or Priority).', + 'passengerSequenceNumber' => 'The passenger\'s sequence number as assigned by the airline.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'securityScreening' => 'The type of security screening the passenger is subject to.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FloorPlan.php b/src/models/jsonld/FloorPlan.php index 361b2af40..a39f21f37 100644 --- a/src/models/jsonld/FloorPlan.php +++ b/src/models/jsonld/FloorPlan.php @@ -31,146 +31,146 @@ */ class FloorPlan extends MetaJsonLd implements FloorPlanInterface, IntangibleInterface, ThingInterface { - use FloorPlanTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FloorPlan'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FloorPlan'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A FloorPlan is an explicit representation of a collection of similar accommodations, allowing the provision of common information (room counts, sizes, layout diagrams) and offers for rental or sale. In typical use, some [[ApartmentComplex]] has an [[accommodationFloorPlan]] which is a [[FloorPlan]]. A FloorPlan is always in the context of a particular place, either a larger [[ApartmentComplex]] or a single [[Apartment]]. The visual/spatial aspects of a floor plan (i.e. room layout, [see wikipedia](https://en.wikipedia.org/wiki/Floor_plan)) can be indicated using [[image]]. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isPlanForApartment' => ['Accommodation'], - 'layoutImage' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numberOfAccommodationUnits' => ['QuantitativeValue'], - 'numberOfAvailableAccommodationUnits' => ['QuantitativeValue'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'petsAllowed' => ['Text', 'Boolean'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isPlanForApartment' => 'Indicates some accommodation that this floor plan describes.', - 'layoutImage' => 'A schematic image showing the floorplan layout.', - '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.', - 'name' => 'The name of the item.', - 'numberOfAccommodationUnits' => 'Indicates the total (available plus unavailable) number of accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAvailableAccommodationUnits]].', - 'numberOfAvailableAccommodationUnits' => 'Indicates the number of available accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAccommodationUnits]].', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FloorPlanTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FloorPlan'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FloorPlan'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A FloorPlan is an explicit representation of a collection of similar accommodations, allowing the provision of common information (room counts, sizes, layout diagrams) and offers for rental or sale. In typical use, some [[ApartmentComplex]] has an [[accommodationFloorPlan]] which is a [[FloorPlan]]. A FloorPlan is always in the context of a particular place, either a larger [[ApartmentComplex]] or a single [[Apartment]]. The visual/spatial aspects of a floor plan (i.e. room layout, [see wikipedia](https://en.wikipedia.org/wiki/Floor_plan)) can be indicated using [[image]]. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isPlanForApartment' => ['Accommodation'], + 'layoutImage' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numberOfAccommodationUnits' => ['QuantitativeValue'], + 'numberOfAvailableAccommodationUnits' => ['QuantitativeValue'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'petsAllowed' => ['Text', 'Boolean'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isPlanForApartment' => 'Indicates some accommodation that this floor plan describes.', + 'layoutImage' => 'A schematic image showing the floorplan layout.', + '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.', + 'name' => 'The name of the item.', + 'numberOfAccommodationUnits' => 'Indicates the total (available plus unavailable) number of accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAvailableAccommodationUnits]].', + 'numberOfAvailableAccommodationUnits' => 'Indicates the number of available accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAccommodationUnits]].', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Florist.php b/src/models/jsonld/Florist.php index 8d3c7732c..c39524e8d 100644 --- a/src/models/jsonld/Florist.php +++ b/src/models/jsonld/Florist.php @@ -23,331 +23,331 @@ */ class Florist extends MetaJsonLd implements FloristInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use FloristTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use FloristTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Florist'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Florist'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Florist'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Florist'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A florist.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A florist.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/FollowAction.php b/src/models/jsonld/FollowAction.php index ca0560d5c..3ec59d37b 100644 --- a/src/models/jsonld/FollowAction.php +++ b/src/models/jsonld/FollowAction.php @@ -35,149 +35,149 @@ */ class FollowAction extends MetaJsonLd implements FollowActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use FollowActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FollowAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FollowAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of forming a personal connection with someone/something (object) unidirectionally/asymmetrically to get updates polled from.\n\nRelated actions:\n\n* [[BefriendAction]]: Unlike BefriendAction, FollowAction implies that the connection is *not* necessarily reciprocal.\n* [[SubscribeAction]]: Unlike SubscribeAction, FollowAction implies that the follower acts as an active agent constantly/actively polling for updates.\n* [[RegisterAction]]: Unlike RegisterAction, FollowAction implies that the agent is interested in continuing receiving updates from the object.\n* [[JoinAction]]: Unlike JoinAction, FollowAction implies that the agent is interested in getting updates from the object.\n* [[TrackAction]]: Unlike TrackAction, FollowAction refers to the polling of updates of all aspects of animate objects rather than the location of inanimate objects (e.g. you track a package, but you don\'t follow it).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'followee' => ['Organization', 'Person'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'followee' => 'A sub property of object. The person or organization being followed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FollowActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FollowAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FollowAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of forming a personal connection with someone/something (object) unidirectionally/asymmetrically to get updates polled from.\n\nRelated actions:\n\n* [[BefriendAction]]: Unlike BefriendAction, FollowAction implies that the connection is *not* necessarily reciprocal.\n* [[SubscribeAction]]: Unlike SubscribeAction, FollowAction implies that the follower acts as an active agent constantly/actively polling for updates.\n* [[RegisterAction]]: Unlike RegisterAction, FollowAction implies that the agent is interested in continuing receiving updates from the object.\n* [[JoinAction]]: Unlike JoinAction, FollowAction implies that the agent is interested in getting updates from the object.\n* [[TrackAction]]: Unlike TrackAction, FollowAction refers to the polling of updates of all aspects of animate objects rather than the location of inanimate objects (e.g. you track a package, but you don\'t follow it).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'followee' => ['Organization', 'Person'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'followee' => 'A sub property of object. The person or organization being followed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FoodEstablishment.php b/src/models/jsonld/FoodEstablishment.php index 4eeded0b9..b42c558b8 100644 --- a/src/models/jsonld/FoodEstablishment.php +++ b/src/models/jsonld/FoodEstablishment.php @@ -23,340 +23,340 @@ */ class FoodEstablishment extends MetaJsonLd implements FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FoodEstablishment'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FoodEstablishment'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FoodEstablishment'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FoodEstablishment'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A food-related business.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A food-related business.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/FoodEstablishmentReservation.php b/src/models/jsonld/FoodEstablishmentReservation.php index ddd7e6fa5..51c4fcef5 100644 --- a/src/models/jsonld/FoodEstablishmentReservation.php +++ b/src/models/jsonld/FoodEstablishmentReservation.php @@ -25,155 +25,155 @@ */ class FoodEstablishmentReservation extends MetaJsonLd implements FoodEstablishmentReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use FoodEstablishmentReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FoodEstablishmentReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FoodEstablishmentReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation to dine at a food-related business.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'partySize' => ['QuantitativeValue', 'Integer'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'partySize' => 'Number of people the reservation should accommodate.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FoodEstablishmentReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FoodEstablishmentReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FoodEstablishmentReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation to dine at a food-related business.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'partySize' => ['QuantitativeValue', 'Integer'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'partySize' => 'Number of people the reservation should accommodate.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FoodEvent.php b/src/models/jsonld/FoodEvent.php index b0621503c..ff9461907 100644 --- a/src/models/jsonld/FoodEvent.php +++ b/src/models/jsonld/FoodEvent.php @@ -23,204 +23,204 @@ */ class FoodEvent extends MetaJsonLd implements FoodEventInterface, EventInterface, ThingInterface { - use FoodEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FoodEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FoodEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Food event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FoodEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FoodEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FoodEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Food event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FoodService.php b/src/models/jsonld/FoodService.php index 366d38989..d25a70b42 100644 --- a/src/models/jsonld/FoodService.php +++ b/src/models/jsonld/FoodService.php @@ -23,171 +23,171 @@ */ class FoodService extends MetaJsonLd implements FoodServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use FoodServiceTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FoodService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FoodService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A food service, like breakfast, lunch, or dinner.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FoodServiceTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FoodService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FoodService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A food service, like breakfast, lunch, or dinner.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FourWheelDriveConfiguration.php b/src/models/jsonld/FourWheelDriveConfiguration.php index 0def7f32f..b616c7f42 100644 --- a/src/models/jsonld/FourWheelDriveConfiguration.php +++ b/src/models/jsonld/FourWheelDriveConfiguration.php @@ -24,143 +24,143 @@ */ class FourWheelDriveConfiguration extends MetaJsonLd implements FourWheelDriveConfigurationInterface, DriveWheelConfigurationValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FourWheelDriveConfigurationTrait; - use DriveWheelConfigurationValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FourWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FourWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Four-wheel drive is a transmission layout where the engine primarily drives two wheels with a part-time four-wheel drive capability.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FourWheelDriveConfigurationTrait; + use DriveWheelConfigurationValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FourWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FourWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Four-wheel drive is a transmission layout where the engine primarily drives two wheels with a part-time four-wheel drive capability.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FreeReturn.php b/src/models/jsonld/FreeReturn.php index 252d75d5e..b483ade09 100644 --- a/src/models/jsonld/FreeReturn.php +++ b/src/models/jsonld/FreeReturn.php @@ -23,126 +23,126 @@ */ class FreeReturn extends MetaJsonLd implements FreeReturnInterface, ReturnFeesEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FreeReturnTrait; - use ReturnFeesEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FreeReturn'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FreeReturn'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that product returns are free of charge for the customer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FreeReturnTrait; + use ReturnFeesEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FreeReturn'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FreeReturn'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that product returns are free of charge for the customer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Friday.php b/src/models/jsonld/Friday.php index 58b1c9468..c26e900c5 100644 --- a/src/models/jsonld/Friday.php +++ b/src/models/jsonld/Friday.php @@ -23,126 +23,126 @@ */ class Friday extends MetaJsonLd implements FridayInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FridayTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Friday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Friday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The day of the week between Thursday and Saturday.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FridayTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Friday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Friday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The day of the week between Thursday and Saturday.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FrontWheelDriveConfiguration.php b/src/models/jsonld/FrontWheelDriveConfiguration.php index 076defba6..45963741b 100644 --- a/src/models/jsonld/FrontWheelDriveConfiguration.php +++ b/src/models/jsonld/FrontWheelDriveConfiguration.php @@ -24,143 +24,143 @@ */ class FrontWheelDriveConfiguration extends MetaJsonLd implements FrontWheelDriveConfigurationInterface, DriveWheelConfigurationValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FrontWheelDriveConfigurationTrait; - use DriveWheelConfigurationValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FrontWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FrontWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Front-wheel drive is a transmission layout where the engine drives the front wheels.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FrontWheelDriveConfigurationTrait; + use DriveWheelConfigurationValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FrontWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FrontWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Front-wheel drive is a transmission layout where the engine drives the front wheels.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FullGameAvailability.php b/src/models/jsonld/FullGameAvailability.php index 4bc3b4eb1..1e95fd1ea 100644 --- a/src/models/jsonld/FullGameAvailability.php +++ b/src/models/jsonld/FullGameAvailability.php @@ -23,126 +23,126 @@ */ class FullGameAvailability extends MetaJsonLd implements FullGameAvailabilityInterface, GameAvailabilityEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FullGameAvailabilityTrait; - use GameAvailabilityEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FullGameAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FullGameAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates full game availability.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FullGameAvailabilityTrait; + use GameAvailabilityEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FullGameAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FullGameAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates full game availability.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FullRefund.php b/src/models/jsonld/FullRefund.php index 979a36c02..657fdff6f 100644 --- a/src/models/jsonld/FullRefund.php +++ b/src/models/jsonld/FullRefund.php @@ -24,126 +24,126 @@ */ class FullRefund extends MetaJsonLd implements FullRefundInterface, RefundTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FullRefundTrait; - use RefundTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FullRefund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FullRefund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that a refund can be done in the full amount the customer paid for the product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FullRefundTrait; + use RefundTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FullRefund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FullRefund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that a refund can be done in the full amount the customer paid for the product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FundingAgency.php b/src/models/jsonld/FundingAgency.php index 1b2c55671..95834c912 100644 --- a/src/models/jsonld/FundingAgency.php +++ b/src/models/jsonld/FundingAgency.php @@ -28,255 +28,255 @@ */ class FundingAgency extends MetaJsonLd implements FundingAgencyInterface, ProjectInterface, OrganizationInterface, ThingInterface { - use FundingAgencyTrait; - use ProjectTrait; - use OrganizationTrait; - use ThingTrait; + use FundingAgencyTrait; + use ProjectTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FundingAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FundingAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FundingAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FundingAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Project'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Project'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A FundingAgency is an organization that implements one or more [[FundingScheme]]s and manages\n the granting process (via [[Grant]]s, typically [[MonetaryGrant]]s).\n A funding agency is not always required for grant funding, e.g. philanthropic giving, corporate sponsorship etc.\n \nExamples of funding agencies include ERC, REA, NIH, Bill and Melinda Gates Foundation, ...\n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A FundingAgency is an organization that implements one or more [[FundingScheme]]s and manages\n the granting process (via [[Grant]]s, typically [[MonetaryGrant]]s).\n A funding agency is not always required for grant funding, e.g. philanthropic giving, corporate sponsorship etc.\n \nExamples of funding agencies include ERC, REA, NIH, Bill and Melinda Gates Foundation, ...\n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/FundingScheme.php b/src/models/jsonld/FundingScheme.php index 083fca918..03d37a8af 100644 --- a/src/models/jsonld/FundingScheme.php +++ b/src/models/jsonld/FundingScheme.php @@ -31,254 +31,254 @@ */ class FundingScheme extends MetaJsonLd implements FundingSchemeInterface, OrganizationInterface, ThingInterface { - use FundingSchemeTrait; - use OrganizationTrait; - use ThingTrait; + use FundingSchemeTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FundingScheme'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FundingScheme'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FundingScheme'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FundingScheme'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A FundingScheme combines organizational, project and policy aspects of grant-based funding\n that sets guidelines, principles and mechanisms to support other kinds of projects and activities.\n Funding is typically organized via [[Grant]] funding. Examples of funding schemes: Swiss Priority Programmes (SPPs); EU Framework 7 (FP7); Horizon 2020; the NIH-R01 Grant Program; Wellcome institutional strategic support fund. For large scale public sector funding, the management and administration of grant awards is often handled by other, dedicated, organizations - [[FundingAgency]]s such as ERC, REA, ..."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A FundingScheme combines organizational, project and policy aspects of grant-based funding\n that sets guidelines, principles and mechanisms to support other kinds of projects and activities.\n Funding is typically organized via [[Grant]] funding. Examples of funding schemes: Swiss Priority Programmes (SPPs); EU Framework 7 (FP7); Horizon 2020; the NIH-R01 Grant Program; Wellcome institutional strategic support fund. For large scale public sector funding, the management and administration of grant awards is often handled by other, dedicated, organizations - [[FundingAgency]]s such as ERC, REA, ..."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Fungus.php b/src/models/jsonld/Fungus.php index 52ba6f1f8..fa674351c 100644 --- a/src/models/jsonld/Fungus.php +++ b/src/models/jsonld/Fungus.php @@ -23,127 +23,127 @@ */ class Fungus extends MetaJsonLd implements FungusInterface, InfectiousAgentClassInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use FungusTrait; - use InfectiousAgentClassTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Fungus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Fungus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Pathogenic fungus.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use FungusTrait; + use InfectiousAgentClassTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Fungus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Fungus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Pathogenic fungus.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/FurnitureStore.php b/src/models/jsonld/FurnitureStore.php index 734111ca2..75cba4982 100644 --- a/src/models/jsonld/FurnitureStore.php +++ b/src/models/jsonld/FurnitureStore.php @@ -23,331 +23,331 @@ */ class FurnitureStore extends MetaJsonLd implements FurnitureStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use FurnitureStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use FurnitureStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'FurnitureStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'FurnitureStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/FurnitureStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/FurnitureStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A furniture store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A furniture store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Game.php b/src/models/jsonld/Game.php index d496e151b..b5612ca0c 100644 --- a/src/models/jsonld/Game.php +++ b/src/models/jsonld/Game.php @@ -25,356 +25,356 @@ */ class Game extends MetaJsonLd implements GameInterface, CreativeWorkInterface, ThingInterface { - use GameTrait; - use CreativeWorkTrait; - use ThingTrait; + use GameTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Game'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Game'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Game'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Game'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The Game type represents things which are games. These are typically rule-governed recreational activities, e.g. role-playing games in which players assume the role of characters in a fictional setting.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The Game type represents things which are games. These are typically rule-governed recreational activities, e.g. role-playing games in which players assume the role of characters in a fictional setting.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'characterAttribute' => ['Thing'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'gameItem' => ['Thing'], - 'gameLocation' => ['PostalAddress', 'URL', 'Place'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfPlayers' => ['QuantitativeValue'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'quest' => ['Thing'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'characterAttribute' => ['Thing'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'gameItem' => ['Thing'], + 'gameLocation' => ['PostalAddress', 'URL', 'Place'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfPlayers' => ['QuantitativeValue'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'quest' => ['Thing'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'characterAttribute' => 'A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gameItem' => 'An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.', - 'gameLocation' => 'Real or fictional location of the game (or part of game).', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfPlayers' => 'Indicate how many people can play this game (minimum, maximum, or range).', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'quest' => 'The task that a player-controlled character, or group of characters may complete in order to gain a reward.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'characterAttribute' => 'A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gameItem' => 'An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.', + 'gameLocation' => 'Real or fictional location of the game (or part of game).', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfPlayers' => 'Indicate how many people can play this game (minimum, maximum, or range).', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'quest' => 'The task that a player-controlled character, or group of characters may complete in order to gain a reward.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GameAvailabilityEnumeration.php b/src/models/jsonld/GameAvailabilityEnumeration.php index f8ac596cf..187e7b710 100644 --- a/src/models/jsonld/GameAvailabilityEnumeration.php +++ b/src/models/jsonld/GameAvailabilityEnumeration.php @@ -24,125 +24,125 @@ */ class GameAvailabilityEnumeration extends MetaJsonLd implements GameAvailabilityEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GameAvailabilityEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GameAvailabilityEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'For a [[VideoGame]], such as used with a [[PlayGameAction]], an enumeration of the kind of game availability offered. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GameAvailabilityEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GameAvailabilityEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'For a [[VideoGame]], such as used with a [[PlayGameAction]], an enumeration of the kind of game availability offered. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GamePlayMode.php b/src/models/jsonld/GamePlayMode.php index 9ca580ce8..8839b4b1c 100644 --- a/src/models/jsonld/GamePlayMode.php +++ b/src/models/jsonld/GamePlayMode.php @@ -23,125 +23,125 @@ */ class GamePlayMode extends MetaJsonLd implements GamePlayModeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GamePlayModeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GamePlayMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GamePlayMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates whether this game is multi-player, co-op or single-player.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GamePlayModeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GamePlayMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GamePlayMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates whether this game is multi-player, co-op or single-player.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GameServer.php b/src/models/jsonld/GameServer.php index e35f994f3..fd5464a92 100644 --- a/src/models/jsonld/GameServer.php +++ b/src/models/jsonld/GameServer.php @@ -23,128 +23,128 @@ */ class GameServer extends MetaJsonLd implements GameServerInterface, IntangibleInterface, ThingInterface { - use GameServerTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GameServer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GameServer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Server that provides game interaction in a multiplayer game.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'game' => ['VideoGame'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'playersOnline' => ['Integer'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'serverStatus' => ['GameServerStatus'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'game' => 'Video game which is played on this server.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'playersOnline' => 'Number of players on the server.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'serverStatus' => 'Status of a game server.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GameServerTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GameServer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GameServer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Server that provides game interaction in a multiplayer game.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'game' => ['VideoGame'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'playersOnline' => ['Integer'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'serverStatus' => ['GameServerStatus'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'game' => 'Video game which is played on this server.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'playersOnline' => 'Number of players on the server.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'serverStatus' => 'Status of a game server.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GameServerStatus.php b/src/models/jsonld/GameServerStatus.php index 1922d7aa9..b355a0ab2 100644 --- a/src/models/jsonld/GameServerStatus.php +++ b/src/models/jsonld/GameServerStatus.php @@ -23,126 +23,126 @@ */ class GameServerStatus extends MetaJsonLd implements GameServerStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GameServerStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GameServerStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GameServerStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Status of a game server.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GameServerStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GameServerStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GameServerStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Status of a game server.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GardenStore.php b/src/models/jsonld/GardenStore.php index b7394ee60..06a77b734 100644 --- a/src/models/jsonld/GardenStore.php +++ b/src/models/jsonld/GardenStore.php @@ -23,331 +23,331 @@ */ class GardenStore extends MetaJsonLd implements GardenStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use GardenStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use GardenStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GardenStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GardenStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GardenStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GardenStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A garden store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A garden store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GasStation.php b/src/models/jsonld/GasStation.php index d5633312a..b5562dadc 100644 --- a/src/models/jsonld/GasStation.php +++ b/src/models/jsonld/GasStation.php @@ -23,331 +23,331 @@ */ class GasStation extends MetaJsonLd implements GasStationInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use GasStationTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use GasStationTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GasStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GasStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GasStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GasStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A gas station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A gas station.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Gastroenterologic.php b/src/models/jsonld/Gastroenterologic.php index 5e3a26838..88fdc6785 100644 --- a/src/models/jsonld/Gastroenterologic.php +++ b/src/models/jsonld/Gastroenterologic.php @@ -24,128 +24,128 @@ */ class Gastroenterologic extends MetaJsonLd implements GastroenterologicInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use GastroenterologicTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Gastroenterologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Gastroenterologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of digestive system.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GastroenterologicTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Gastroenterologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Gastroenterologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of digestive system.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GatedResidenceCommunity.php b/src/models/jsonld/GatedResidenceCommunity.php index 117ad4bb8..7596528f5 100644 --- a/src/models/jsonld/GatedResidenceCommunity.php +++ b/src/models/jsonld/GatedResidenceCommunity.php @@ -23,215 +23,215 @@ */ class GatedResidenceCommunity extends MetaJsonLd implements GatedResidenceCommunityInterface, ResidenceInterface, PlaceInterface, ThingInterface { - use GatedResidenceCommunityTrait; - use ResidenceTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GatedResidenceCommunity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GatedResidenceCommunity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Residence'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Residence type: Gated community.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GatedResidenceCommunityTrait; + use ResidenceTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GatedResidenceCommunity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GatedResidenceCommunity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Residence'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Residence type: Gated community.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GenderType.php b/src/models/jsonld/GenderType.php index 8531354a1..f809eaf40 100644 --- a/src/models/jsonld/GenderType.php +++ b/src/models/jsonld/GenderType.php @@ -23,125 +23,125 @@ */ class GenderType extends MetaJsonLd implements GenderTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GenderTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GenderType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GenderType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An enumeration of genders.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GenderTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GenderType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GenderType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An enumeration of genders.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Gene.php b/src/models/jsonld/Gene.php index 49394f374..2e53cd7cc 100644 --- a/src/models/jsonld/Gene.php +++ b/src/models/jsonld/Gene.php @@ -27,156 +27,156 @@ */ class Gene extends MetaJsonLd implements GeneInterface, BioChemEntityInterface, ThingInterface { - use GeneTrait; - use BioChemEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Gene'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Gene'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A discrete unit of inheritance which affects one or more biological traits (Source: [https://en.wikipedia.org/wiki/Gene](https://en.wikipedia.org/wiki/Gene)). Examples include FOXP2 (Forkhead box protein P2), SCARNA21 (small Cajal body-specific RNA 21), A- (agouti genotype).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'alternativeOf' => ['Gene'], - 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], - 'bioChemInteraction' => ['BioChemEntity'], - 'bioChemSimilarity' => ['BioChemEntity'], - 'biologicalRole' => ['DefinedTerm'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'encodesBioChemEntity' => ['BioChemEntity'], - 'expressedIn' => ['DefinedTerm', 'BioChemEntity', 'AnatomicalSystem', 'AnatomicalStructure'], - 'funding' => ['Grant'], - 'hasBioChemEntityPart' => ['BioChemEntity'], - 'hasBioPolymerSequence' => ['Text'], - 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isEncodedByBioChemEntity' => ['Gene'], - 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], - 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'isPartOfBioChemEntity' => ['BioChemEntity'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'alternativeOf' => 'Another gene which is a variation of this one.', - 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', - 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', - 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', - 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', - 'description' => 'A description of the item.', - '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.', - 'encodesBioChemEntity' => 'Another BioChemEntity encoded by this one. ', - 'expressedIn' => 'Tissue, organ, biological sample, etc in which activity of this gene has been observed experimentally. For example brain, digestive system.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', - 'hasBioPolymerSequence' => 'A symbolic representation of a BioChemEntity. For example, a nucleotide sequence of a Gene or an amino acid sequence of a Protein.', - 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', - 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', - 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', - 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', - 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GeneTrait; + use BioChemEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Gene'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Gene'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A discrete unit of inheritance which affects one or more biological traits (Source: [https://en.wikipedia.org/wiki/Gene](https://en.wikipedia.org/wiki/Gene)). Examples include FOXP2 (Forkhead box protein P2), SCARNA21 (small Cajal body-specific RNA 21), A- (agouti genotype).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'alternativeOf' => ['Gene'], + 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], + 'bioChemInteraction' => ['BioChemEntity'], + 'bioChemSimilarity' => ['BioChemEntity'], + 'biologicalRole' => ['DefinedTerm'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'encodesBioChemEntity' => ['BioChemEntity'], + 'expressedIn' => ['DefinedTerm', 'BioChemEntity', 'AnatomicalSystem', 'AnatomicalStructure'], + 'funding' => ['Grant'], + 'hasBioChemEntityPart' => ['BioChemEntity'], + 'hasBioPolymerSequence' => ['Text'], + 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isEncodedByBioChemEntity' => ['Gene'], + 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], + 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'isPartOfBioChemEntity' => ['BioChemEntity'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'alternativeOf' => 'Another gene which is a variation of this one.', + 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', + 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', + 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', + 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', + 'description' => 'A description of the item.', + '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.', + 'encodesBioChemEntity' => 'Another BioChemEntity encoded by this one. ', + 'expressedIn' => 'Tissue, organ, biological sample, etc in which activity of this gene has been observed experimentally. For example brain, digestive system.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', + 'hasBioPolymerSequence' => 'A symbolic representation of a BioChemEntity. For example, a nucleotide sequence of a Gene or an amino acid sequence of a Protein.', + 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', + 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', + 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', + 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', + 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GeneralContractor.php b/src/models/jsonld/GeneralContractor.php index 4d96ec358..1bd06fc09 100644 --- a/src/models/jsonld/GeneralContractor.php +++ b/src/models/jsonld/GeneralContractor.php @@ -23,331 +23,331 @@ */ class GeneralContractor extends MetaJsonLd implements GeneralContractorInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use GeneralContractorTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use GeneralContractorTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GeneralContractor'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GeneralContractor'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GeneralContractor'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GeneralContractor'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A general contractor.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A general contractor.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GenericWebPlatform.php b/src/models/jsonld/GenericWebPlatform.php index ebf8ed184..60982cc72 100644 --- a/src/models/jsonld/GenericWebPlatform.php +++ b/src/models/jsonld/GenericWebPlatform.php @@ -25,126 +25,126 @@ */ class GenericWebPlatform extends MetaJsonLd implements GenericWebPlatformInterface, DigitalPlatformEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GenericWebPlatformTrait; - use DigitalPlatformEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GenericWebPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GenericWebPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the generic notion of the Web Platform. More specific codes include [[MobileWebPlatform]] and [[DesktopWebPlatform]], as an incomplete list. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GenericWebPlatformTrait; + use DigitalPlatformEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GenericWebPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GenericWebPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the generic notion of the Web Platform. More specific codes include [[MobileWebPlatform]] and [[DesktopWebPlatform]], as an incomplete list. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Genetic.php b/src/models/jsonld/Genetic.php index 6a8c14600..c5d9d8e94 100644 --- a/src/models/jsonld/Genetic.php +++ b/src/models/jsonld/Genetic.php @@ -24,128 +24,128 @@ */ class Genetic extends MetaJsonLd implements GeneticInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use GeneticTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Genetic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Genetic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to hereditary transmission and the variation of inherited characteristics and disorders.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GeneticTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Genetic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Genetic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to hereditary transmission and the variation of inherited characteristics and disorders.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Genitourinary.php b/src/models/jsonld/Genitourinary.php index 446e56ae8..ff9ad7fda 100644 --- a/src/models/jsonld/Genitourinary.php +++ b/src/models/jsonld/Genitourinary.php @@ -23,157 +23,157 @@ */ class Genitourinary extends MetaJsonLd implements GenitourinaryInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use GenitourinaryTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Genitourinary'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Genitourinary'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Genitourinary system function assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GenitourinaryTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Genitourinary'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Genitourinary'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Genitourinary system function assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GeoCircle.php b/src/models/jsonld/GeoCircle.php index b98e760ef..f0b4c0c22 100644 --- a/src/models/jsonld/GeoCircle.php +++ b/src/models/jsonld/GeoCircle.php @@ -27,144 +27,144 @@ */ class GeoCircle extends MetaJsonLd implements GeoCircleInterface, GeoShapeInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use GeoCircleTrait; - use GeoShapeTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GeoCircle'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GeoCircle'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GeoShape'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A GeoCircle is a GeoShape representing a circular geographic area. As it is a GeoShape\n it provides the simple textual property 'circle', but also allows the combination of postalCode alongside geoRadius.\n The center of the circle can be indicated via the 'geoMidpoint' property, or more approximately using 'address', 'postalCode'.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'addressCountry' => ['Country', 'Text'], - 'alternateName' => ['Text'], - 'box' => ['Text'], - 'circle' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'elevation' => ['Number', 'Text'], - 'geoMidpoint' => ['GeoCoordinates'], - 'geoRadius' => ['Number', 'Text', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'line' => ['Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'polygon' => ['Text'], - 'postalCode' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'address' => 'Physical address of the item.', - 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', - 'alternateName' => 'An alias for the item.', - 'box' => 'A box is the area enclosed by the rectangle formed by two points. The first point is the lower corner, the second point is the upper corner. A box is expressed as two points separated by a space character.', - 'circle' => 'A circle is the circular region of a specified radius centered at a specified latitude and longitude. A circle is expressed as a pair followed by a radius in meters.', - 'description' => 'A description of the item.', - '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.', - 'elevation' => 'The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)). Values may be of the form \'NUMBER UNIT\_OF\_MEASUREMENT\' (e.g., \'1,000 m\', \'3,200 ft\') while numbers alone should be assumed to be a value in meters.', - 'geoMidpoint' => 'Indicates the GeoCoordinates at the centre of a GeoShape, e.g. GeoCircle.', - 'geoRadius' => 'Indicates the approximate radius of a GeoCircle (metres unless indicated otherwise via Distance notation).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'line' => 'A line is a point-to-point path consisting of two or more points. A line is expressed as a series of two or more point objects separated by space.', - '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.', - 'name' => 'The name of the item.', - 'polygon' => 'A polygon is the area enclosed by a point-to-point path for which the starting and ending points are the same. A polygon is expressed as a series of four or more space delimited points where the first and final points are identical.', - 'postalCode' => 'The postal code. For example, 94043.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GeoCircleTrait; + use GeoShapeTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GeoCircle'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GeoCircle'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GeoShape'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A GeoCircle is a GeoShape representing a circular geographic area. As it is a GeoShape\n it provides the simple textual property 'circle', but also allows the combination of postalCode alongside geoRadius.\n The center of the circle can be indicated via the 'geoMidpoint' property, or more approximately using 'address', 'postalCode'.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'addressCountry' => ['Country', 'Text'], + 'alternateName' => ['Text'], + 'box' => ['Text'], + 'circle' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'elevation' => ['Number', 'Text'], + 'geoMidpoint' => ['GeoCoordinates'], + 'geoRadius' => ['Number', 'Text', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'line' => ['Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'polygon' => ['Text'], + 'postalCode' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'address' => 'Physical address of the item.', + 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', + 'alternateName' => 'An alias for the item.', + 'box' => 'A box is the area enclosed by the rectangle formed by two points. The first point is the lower corner, the second point is the upper corner. A box is expressed as two points separated by a space character.', + 'circle' => 'A circle is the circular region of a specified radius centered at a specified latitude and longitude. A circle is expressed as a pair followed by a radius in meters.', + 'description' => 'A description of the item.', + '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.', + 'elevation' => 'The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)). Values may be of the form \'NUMBER UNIT\_OF\_MEASUREMENT\' (e.g., \'1,000 m\', \'3,200 ft\') while numbers alone should be assumed to be a value in meters.', + 'geoMidpoint' => 'Indicates the GeoCoordinates at the centre of a GeoShape, e.g. GeoCircle.', + 'geoRadius' => 'Indicates the approximate radius of a GeoCircle (metres unless indicated otherwise via Distance notation).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'line' => 'A line is a point-to-point path consisting of two or more points. A line is expressed as a series of two or more point objects separated by space.', + '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.', + 'name' => 'The name of the item.', + 'polygon' => 'A polygon is the area enclosed by a point-to-point path for which the starting and ending points are the same. A polygon is expressed as a series of four or more space delimited points where the first and final points are identical.', + 'postalCode' => 'The postal code. For example, 94043.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GeoCoordinates.php b/src/models/jsonld/GeoCoordinates.php index b6e7a40fb..729e8fb24 100644 --- a/src/models/jsonld/GeoCoordinates.php +++ b/src/models/jsonld/GeoCoordinates.php @@ -23,135 +23,135 @@ */ class GeoCoordinates extends MetaJsonLd implements GeoCoordinatesInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use GeoCoordinatesTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GeoCoordinates'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GeoCoordinates'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The geographic coordinates of a place or event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'addressCountry' => ['Country', 'Text'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'elevation' => ['Number', 'Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'latitude' => ['Number', 'Text'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'postalCode' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'address' => 'Physical address of the item.', - 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'elevation' => 'The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)). Values may be of the form \'NUMBER UNIT\_OF\_MEASUREMENT\' (e.g., \'1,000 m\', \'3,200 ft\') while numbers alone should be assumed to be a value in meters.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'name' => 'The name of the item.', - 'postalCode' => 'The postal code. For example, 94043.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GeoCoordinatesTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GeoCoordinates'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GeoCoordinates'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The geographic coordinates of a place or event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'addressCountry' => ['Country', 'Text'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'elevation' => ['Number', 'Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'latitude' => ['Number', 'Text'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'postalCode' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'address' => 'Physical address of the item.', + 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'elevation' => 'The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)). Values may be of the form \'NUMBER UNIT\_OF\_MEASUREMENT\' (e.g., \'1,000 m\', \'3,200 ft\') while numbers alone should be assumed to be a value in meters.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'name' => 'The name of the item.', + 'postalCode' => 'The postal code. For example, 94043.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GeoShape.php b/src/models/jsonld/GeoShape.php index 167d58845..f63aa0646 100644 --- a/src/models/jsonld/GeoShape.php +++ b/src/models/jsonld/GeoShape.php @@ -26,139 +26,139 @@ */ class GeoShape extends MetaJsonLd implements GeoShapeInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use GeoShapeTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GeoShape'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GeoShape'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The geographic shape of a place. A GeoShape can be described using several properties whose values are based on latitude/longitude pairs. Either whitespace or commas can be used to separate latitude and longitude; whitespace should be used when writing a list of several such points.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'addressCountry' => ['Country', 'Text'], - 'alternateName' => ['Text'], - 'box' => ['Text'], - 'circle' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'elevation' => ['Number', 'Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'line' => ['Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'polygon' => ['Text'], - 'postalCode' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'address' => 'Physical address of the item.', - 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', - 'alternateName' => 'An alias for the item.', - 'box' => 'A box is the area enclosed by the rectangle formed by two points. The first point is the lower corner, the second point is the upper corner. A box is expressed as two points separated by a space character.', - 'circle' => 'A circle is the circular region of a specified radius centered at a specified latitude and longitude. A circle is expressed as a pair followed by a radius in meters.', - 'description' => 'A description of the item.', - '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.', - 'elevation' => 'The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)). Values may be of the form \'NUMBER UNIT\_OF\_MEASUREMENT\' (e.g., \'1,000 m\', \'3,200 ft\') while numbers alone should be assumed to be a value in meters.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'line' => 'A line is a point-to-point path consisting of two or more points. A line is expressed as a series of two or more point objects separated by space.', - '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.', - 'name' => 'The name of the item.', - 'polygon' => 'A polygon is the area enclosed by a point-to-point path for which the starting and ending points are the same. A polygon is expressed as a series of four or more space delimited points where the first and final points are identical.', - 'postalCode' => 'The postal code. For example, 94043.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GeoShapeTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GeoShape'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GeoShape'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The geographic shape of a place. A GeoShape can be described using several properties whose values are based on latitude/longitude pairs. Either whitespace or commas can be used to separate latitude and longitude; whitespace should be used when writing a list of several such points.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'addressCountry' => ['Country', 'Text'], + 'alternateName' => ['Text'], + 'box' => ['Text'], + 'circle' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'elevation' => ['Number', 'Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'line' => ['Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'polygon' => ['Text'], + 'postalCode' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'address' => 'Physical address of the item.', + 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', + 'alternateName' => 'An alias for the item.', + 'box' => 'A box is the area enclosed by the rectangle formed by two points. The first point is the lower corner, the second point is the upper corner. A box is expressed as two points separated by a space character.', + 'circle' => 'A circle is the circular region of a specified radius centered at a specified latitude and longitude. A circle is expressed as a pair followed by a radius in meters.', + 'description' => 'A description of the item.', + '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.', + 'elevation' => 'The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)). Values may be of the form \'NUMBER UNIT\_OF\_MEASUREMENT\' (e.g., \'1,000 m\', \'3,200 ft\') while numbers alone should be assumed to be a value in meters.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'line' => 'A line is a point-to-point path consisting of two or more points. A line is expressed as a series of two or more point objects separated by space.', + '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.', + 'name' => 'The name of the item.', + 'polygon' => 'A polygon is the area enclosed by a point-to-point path for which the starting and ending points are the same. A polygon is expressed as a series of four or more space delimited points where the first and final points are identical.', + 'postalCode' => 'The postal code. For example, 94043.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GeospatialGeometry.php b/src/models/jsonld/GeospatialGeometry.php index 71c8bda17..c7e053f48 100644 --- a/src/models/jsonld/GeospatialGeometry.php +++ b/src/models/jsonld/GeospatialGeometry.php @@ -24,142 +24,142 @@ */ class GeospatialGeometry extends MetaJsonLd implements GeospatialGeometryInterface, IntangibleInterface, ThingInterface { - use GeospatialGeometryTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GeospatialGeometry'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GeospatialGeometry'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = '(Eventually to be defined as) a supertype of GeoShape designed to accommodate definitions from Geo-Spatial best practices.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GeospatialGeometryTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GeospatialGeometry'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GeospatialGeometry'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = '(Eventually to be defined as) a supertype of GeoShape designed to accommodate definitions from Geo-Spatial best practices.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Geriatric.php b/src/models/jsonld/Geriatric.php index d68c72525..aab0cab5d 100644 --- a/src/models/jsonld/Geriatric.php +++ b/src/models/jsonld/Geriatric.php @@ -24,338 +24,338 @@ */ class Geriatric extends MetaJsonLd implements GeriatricInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use GeriatricTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use GeriatricTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Geriatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Geriatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Geriatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Geriatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the diagnosis and treatment of diseases, debilities and provision of care to the aged.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the diagnosis and treatment of diseases, debilities and provision of care to the aged.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GettingAccessHealthAspect.php b/src/models/jsonld/GettingAccessHealthAspect.php index c428dc0a1..55a02b841 100644 --- a/src/models/jsonld/GettingAccessHealthAspect.php +++ b/src/models/jsonld/GettingAccessHealthAspect.php @@ -24,126 +24,126 @@ */ class GettingAccessHealthAspect extends MetaJsonLd implements GettingAccessHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GettingAccessHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GettingAccessHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GettingAccessHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content that discusses practical and policy aspects for getting access to specific kinds of healthcare (e.g. distribution mechanisms for vaccines).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GettingAccessHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GettingAccessHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GettingAccessHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content that discusses practical and policy aspects for getting access to specific kinds of healthcare (e.g. distribution mechanisms for vaccines).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GiveAction.php b/src/models/jsonld/GiveAction.php index ac72ce094..3800e93a8 100644 --- a/src/models/jsonld/GiveAction.php +++ b/src/models/jsonld/GiveAction.php @@ -27,153 +27,153 @@ */ class GiveAction extends MetaJsonLd implements GiveActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use GiveActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GiveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GiveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of transferring ownership of an object to a destination. Reciprocal of TakeAction.\n\nRelated actions:\n\n* [[TakeAction]]: Reciprocal of GiveAction.\n* [[SendAction]]: Unlike SendAction, GiveAction implies that ownership is being transferred (e.g. I may send my laptop to you, but that doesn\'t mean I\'m giving it to you).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GiveActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GiveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GiveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of transferring ownership of an object to a destination. Reciprocal of TakeAction.\n\nRelated actions:\n\n* [[TakeAction]]: Reciprocal of GiveAction.\n* [[SendAction]]: Unlike SendAction, GiveAction implies that ownership is being transferred (e.g. I may send my laptop to you, but that doesn\'t mean I\'m giving it to you).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GlutenFreeDiet.php b/src/models/jsonld/GlutenFreeDiet.php index 4cb18ec3a..f0271c5aa 100644 --- a/src/models/jsonld/GlutenFreeDiet.php +++ b/src/models/jsonld/GlutenFreeDiet.php @@ -23,126 +23,126 @@ */ class GlutenFreeDiet extends MetaJsonLd implements GlutenFreeDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GlutenFreeDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GlutenFreeDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GlutenFreeDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet exclusive of gluten.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GlutenFreeDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GlutenFreeDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GlutenFreeDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet exclusive of gluten.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GolfCourse.php b/src/models/jsonld/GolfCourse.php index 5c86ad508..6b40f4bfd 100644 --- a/src/models/jsonld/GolfCourse.php +++ b/src/models/jsonld/GolfCourse.php @@ -23,331 +23,331 @@ */ class GolfCourse extends MetaJsonLd implements GolfCourseInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use GolfCourseTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use GolfCourseTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GolfCourse'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GolfCourse'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GolfCourse'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GolfCourse'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A golf course.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A golf course.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GovernmentBenefitsType.php b/src/models/jsonld/GovernmentBenefitsType.php index c8ef72fe3..fbfdf67f9 100644 --- a/src/models/jsonld/GovernmentBenefitsType.php +++ b/src/models/jsonld/GovernmentBenefitsType.php @@ -25,125 +25,125 @@ */ class GovernmentBenefitsType extends MetaJsonLd implements GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GovernmentBenefitsType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'GovernmentBenefitsType enumerates several kinds of government benefits to support the COVID-19 situation. Note that this structure may not capture all benefits offered.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GovernmentBenefitsType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'GovernmentBenefitsType enumerates several kinds of government benefits to support the COVID-19 situation. Note that this structure may not capture all benefits offered.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GovernmentBuilding.php b/src/models/jsonld/GovernmentBuilding.php index a5abfc982..c2a45f017 100644 --- a/src/models/jsonld/GovernmentBuilding.php +++ b/src/models/jsonld/GovernmentBuilding.php @@ -23,215 +23,215 @@ */ class GovernmentBuilding extends MetaJsonLd implements GovernmentBuildingInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use GovernmentBuildingTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GovernmentBuilding'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GovernmentBuilding'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A government building.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GovernmentBuildingTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GovernmentBuilding'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GovernmentBuilding'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A government building.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GovernmentOffice.php b/src/models/jsonld/GovernmentOffice.php index 80bfb1ead..c668b425c 100644 --- a/src/models/jsonld/GovernmentOffice.php +++ b/src/models/jsonld/GovernmentOffice.php @@ -23,330 +23,330 @@ */ class GovernmentOffice extends MetaJsonLd implements GovernmentOfficeInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use GovernmentOfficeTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use GovernmentOfficeTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GovernmentOffice'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GovernmentOffice'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GovernmentOffice'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GovernmentOffice'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A government office—for example, an IRS or DMV office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A government office—for example, an IRS or DMV office.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GovernmentOrganization.php b/src/models/jsonld/GovernmentOrganization.php index 333d00425..d18c4af8b 100644 --- a/src/models/jsonld/GovernmentOrganization.php +++ b/src/models/jsonld/GovernmentOrganization.php @@ -23,254 +23,254 @@ */ class GovernmentOrganization extends MetaJsonLd implements GovernmentOrganizationInterface, OrganizationInterface, ThingInterface { - use GovernmentOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use GovernmentOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GovernmentOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GovernmentOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GovernmentOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GovernmentOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A governmental organization or agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A governmental organization or agency.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GovernmentPermit.php b/src/models/jsonld/GovernmentPermit.php index f1eff51ba..90e5e1cab 100644 --- a/src/models/jsonld/GovernmentPermit.php +++ b/src/models/jsonld/GovernmentPermit.php @@ -23,137 +23,137 @@ */ class GovernmentPermit extends MetaJsonLd implements GovernmentPermitInterface, PermitInterface, IntangibleInterface, ThingInterface { - use GovernmentPermitTrait; - use PermitTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GovernmentPermit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GovernmentPermit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Permit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A permit issued by a government agency.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'issuedBy' => ['Organization'], - 'issuedThrough' => ['Service'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'permitAudience' => ['Audience'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFor' => ['Duration'], - 'validFrom' => ['Date', 'DateTime'], - 'validIn' => ['AdministrativeArea'], - 'validUntil' => ['Date'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'issuedBy' => 'The organization issuing the ticket or permit.', - 'issuedThrough' => 'The service through which the permit was granted.', - '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.', - 'name' => 'The name of the item.', - 'permitAudience' => 'The target audience for this permit.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFor' => 'The duration of validity of a permit or similar thing.', - 'validFrom' => 'The date when the item becomes valid.', - 'validIn' => 'The geographic area where a permit or similar thing is valid.', - 'validUntil' => 'The date when the item is no longer valid.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GovernmentPermitTrait; + use PermitTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GovernmentPermit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GovernmentPermit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Permit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A permit issued by a government agency.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'issuedBy' => ['Organization'], + 'issuedThrough' => ['Service'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'permitAudience' => ['Audience'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFor' => ['Duration'], + 'validFrom' => ['Date', 'DateTime'], + 'validIn' => ['AdministrativeArea'], + 'validUntil' => ['Date'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'issuedBy' => 'The organization issuing the ticket or permit.', + 'issuedThrough' => 'The service through which the permit was granted.', + '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.', + 'name' => 'The name of the item.', + 'permitAudience' => 'The target audience for this permit.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFor' => 'The duration of validity of a permit or similar thing.', + 'validFrom' => 'The date when the item becomes valid.', + 'validIn' => 'The geographic area where a permit or similar thing is valid.', + 'validUntil' => 'The date when the item is no longer valid.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GovernmentService.php b/src/models/jsonld/GovernmentService.php index b9ff033ca..e6de0767d 100644 --- a/src/models/jsonld/GovernmentService.php +++ b/src/models/jsonld/GovernmentService.php @@ -24,175 +24,175 @@ */ class GovernmentService extends MetaJsonLd implements GovernmentServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use GovernmentServiceTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GovernmentService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GovernmentService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A service provided by a government organization, e.g. food stamps, veterans benefits, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'jurisdiction' => ['AdministrativeArea', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOperator' => ['Organization'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'jurisdiction' => 'Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOperator' => 'The operating organization, if different from the provider. This enables the representation of services that are provided by an organization, but operated by another organization like a subcontractor.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GovernmentServiceTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GovernmentService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GovernmentService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A service provided by a government organization, e.g. food stamps, veterans benefits, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'jurisdiction' => ['AdministrativeArea', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOperator' => ['Organization'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'jurisdiction' => 'Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOperator' => 'The operating organization, if different from the provider. This enables the representation of services that are provided by an organization, but operated by another organization like a subcontractor.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Grant.php b/src/models/jsonld/Grant.php index 77665ff39..e4a8d8c35 100644 --- a/src/models/jsonld/Grant.php +++ b/src/models/jsonld/Grant.php @@ -34,128 +34,128 @@ */ class Grant extends MetaJsonLd implements GrantInterface, IntangibleInterface, ThingInterface { - use GrantTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Grant'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Grant'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A grant, typically financial or otherwise quantifiable, of resources. Typically a [[funder]] sponsors some [[MonetaryAmount]] to an [[Organization]] or [[Person]],\n sometimes not necessarily via a dedicated or long-lived [[Project]], resulting in one or more outputs, or [[fundedItem]]s. For financial sponsorship, indicate the [[funder]] of a [[MonetaryGrant]]. For non-financial support, indicate [[sponsor]] of [[Grant]]s of resources (e.g. office space).\n\nGrants support activities directed towards some agreed collective goals, often but not always organized as [[Project]]s. Long-lived projects are sometimes sponsored by a variety of grants over time, but it is also common for a project to be associated with a single grant.\n\nThe amount of a [[Grant]] is represented using [[amount]] as a [[MonetaryAmount]].\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'fundedItem' => ['Organization', 'BioChemEntity', 'Event', 'Person', 'MedicalEntity', 'Product', 'CreativeWork'], - 'funder' => ['Organization', 'Person'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'fundedItem' => 'Indicates something directly or indirectly funded or sponsored through a [[Grant]]. See also [[ownershipFundingInfo]].', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GrantTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Grant'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Grant'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A grant, typically financial or otherwise quantifiable, of resources. Typically a [[funder]] sponsors some [[MonetaryAmount]] to an [[Organization]] or [[Person]],\n sometimes not necessarily via a dedicated or long-lived [[Project]], resulting in one or more outputs, or [[fundedItem]]s. For financial sponsorship, indicate the [[funder]] of a [[MonetaryGrant]]. For non-financial support, indicate [[sponsor]] of [[Grant]]s of resources (e.g. office space).\n\nGrants support activities directed towards some agreed collective goals, often but not always organized as [[Project]]s. Long-lived projects are sometimes sponsored by a variety of grants over time, but it is also common for a project to be associated with a single grant.\n\nThe amount of a [[Grant]] is represented using [[amount]] as a [[MonetaryAmount]].\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'fundedItem' => ['Organization', 'BioChemEntity', 'Event', 'Person', 'MedicalEntity', 'Product', 'CreativeWork'], + 'funder' => ['Organization', 'Person'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'fundedItem' => 'Indicates something directly or indirectly funded or sponsored through a [[Grant]]. See also [[ownershipFundingInfo]].', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GraphicNovel.php b/src/models/jsonld/GraphicNovel.php index ae6583538..de126a61b 100644 --- a/src/models/jsonld/GraphicNovel.php +++ b/src/models/jsonld/GraphicNovel.php @@ -24,126 +24,126 @@ */ class GraphicNovel extends MetaJsonLd implements GraphicNovelInterface, BookFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GraphicNovelTrait; - use BookFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GraphicNovel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GraphicNovel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Book format: GraphicNovel. May represent a bound collection of ComicIssue instances.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GraphicNovelTrait; + use BookFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GraphicNovel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GraphicNovel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Book format: GraphicNovel. May represent a bound collection of ComicIssue instances.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/GroceryStore.php b/src/models/jsonld/GroceryStore.php index 2af2353a3..91dea5f6e 100644 --- a/src/models/jsonld/GroceryStore.php +++ b/src/models/jsonld/GroceryStore.php @@ -23,331 +23,331 @@ */ class GroceryStore extends MetaJsonLd implements GroceryStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use GroceryStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use GroceryStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GroceryStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GroceryStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GroceryStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GroceryStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A grocery store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A grocery store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/GroupBoardingPolicy.php b/src/models/jsonld/GroupBoardingPolicy.php index 97b7299a0..5cc51c634 100644 --- a/src/models/jsonld/GroupBoardingPolicy.php +++ b/src/models/jsonld/GroupBoardingPolicy.php @@ -23,126 +23,126 @@ */ class GroupBoardingPolicy extends MetaJsonLd implements GroupBoardingPolicyInterface, BoardingPolicyTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use GroupBoardingPolicyTrait; - use BoardingPolicyTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'GroupBoardingPolicy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/GroupBoardingPolicy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BoardingPolicyType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The airline boards by groups based on check-in time, priority, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use GroupBoardingPolicyTrait; + use BoardingPolicyTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'GroupBoardingPolicy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/GroupBoardingPolicy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BoardingPolicyType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The airline boards by groups based on check-in time, priority, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Guide.php b/src/models/jsonld/Guide.php index 391b75b66..f09bf3208 100644 --- a/src/models/jsonld/Guide.php +++ b/src/models/jsonld/Guide.php @@ -28,348 +28,348 @@ */ class Guide extends MetaJsonLd implements GuideInterface, CreativeWorkInterface, ThingInterface { - use GuideTrait; - use CreativeWorkTrait; - use ThingTrait; + use GuideTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Guide'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Guide'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Guide'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Guide'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = '[[Guide]] is a page or article that recommends specific products or services, or aspects of a thing for a user to consider. A [[Guide]] may represent a Buying Guide and detail aspects of products or services for a user to consider. A [[Guide]] may represent a Product Guide and recommend specific products or services. A [[Guide]] may represent a Ranked List and recommend specific products or services with ranking.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = '[[Guide]] is a page or article that recommends specific products or services, or aspects of a thing for a user to consider. A [[Guide]] may represent a Buying Guide and detail aspects of products or services for a user to consider. A [[Guide]] may represent a Product Guide and recommend specific products or services. A [[Guide]] may represent a Ranked List and recommend specific products or services with ranking.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Gynecologic.php b/src/models/jsonld/Gynecologic.php index b343269b8..9c67506d6 100644 --- a/src/models/jsonld/Gynecologic.php +++ b/src/models/jsonld/Gynecologic.php @@ -25,338 +25,338 @@ */ class Gynecologic extends MetaJsonLd implements GynecologicInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use GynecologicTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use GynecologicTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Gynecologic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Gynecologic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Gynecologic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Gynecologic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to the health care of women, particularly in the diagnosis and treatment of disorders affecting the female reproductive system.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to the health care of women, particularly in the diagnosis and treatment of disorders affecting the female reproductive system.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HVACBusiness.php b/src/models/jsonld/HVACBusiness.php index 865776fee..0e340e90f 100644 --- a/src/models/jsonld/HVACBusiness.php +++ b/src/models/jsonld/HVACBusiness.php @@ -24,331 +24,331 @@ */ class HVACBusiness extends MetaJsonLd implements HVACBusinessInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HVACBusinessTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HVACBusinessTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HVACBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HVACBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HVACBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HVACBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A business that provides Heating, Ventilation and Air Conditioning services.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A business that provides Heating, Ventilation and Air Conditioning services.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Hackathon.php b/src/models/jsonld/Hackathon.php index d88005b54..2a41f17e6 100644 --- a/src/models/jsonld/Hackathon.php +++ b/src/models/jsonld/Hackathon.php @@ -23,204 +23,204 @@ */ class Hackathon extends MetaJsonLd implements HackathonInterface, EventInterface, ThingInterface { - use HackathonTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Hackathon'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Hackathon'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [hackathon](https://en.wikipedia.org/wiki/Hackathon) event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HackathonTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Hackathon'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Hackathon'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [hackathon](https://en.wikipedia.org/wiki/Hackathon) event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HairSalon.php b/src/models/jsonld/HairSalon.php index 108700859..59e7b2783 100644 --- a/src/models/jsonld/HairSalon.php +++ b/src/models/jsonld/HairSalon.php @@ -23,331 +23,331 @@ */ class HairSalon extends MetaJsonLd implements HairSalonInterface, HealthAndBeautyBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HairSalonTrait; - use HealthAndBeautyBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HairSalonTrait; + use HealthAndBeautyBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HairSalon'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HairSalon'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HairSalon'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HairSalon'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A hair salon.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A hair salon.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HalalDiet.php b/src/models/jsonld/HalalDiet.php index b88469b46..ae220354c 100644 --- a/src/models/jsonld/HalalDiet.php +++ b/src/models/jsonld/HalalDiet.php @@ -23,126 +23,126 @@ */ class HalalDiet extends MetaJsonLd implements HalalDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HalalDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HalalDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HalalDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet conforming to Islamic dietary practices.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HalalDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HalalDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HalalDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet conforming to Islamic dietary practices.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Hardcover.php b/src/models/jsonld/Hardcover.php index 3c71b1c50..52c81951b 100644 --- a/src/models/jsonld/Hardcover.php +++ b/src/models/jsonld/Hardcover.php @@ -23,126 +23,126 @@ */ class Hardcover extends MetaJsonLd implements HardcoverInterface, BookFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HardcoverTrait; - use BookFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Hardcover'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Hardcover'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Book format: Hardcover.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HardcoverTrait; + use BookFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Hardcover'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Hardcover'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Book format: Hardcover.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HardwareStore.php b/src/models/jsonld/HardwareStore.php index 082094898..b25cc0ea4 100644 --- a/src/models/jsonld/HardwareStore.php +++ b/src/models/jsonld/HardwareStore.php @@ -23,331 +23,331 @@ */ class HardwareStore extends MetaJsonLd implements HardwareStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HardwareStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HardwareStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HardwareStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HardwareStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HardwareStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HardwareStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A hardware store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A hardware store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Head.php b/src/models/jsonld/Head.php index 598d6fb5a..53d803bd0 100644 --- a/src/models/jsonld/Head.php +++ b/src/models/jsonld/Head.php @@ -23,157 +23,157 @@ */ class Head extends MetaJsonLd implements HeadInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use HeadTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Head'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Head'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Head assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HeadTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Head'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Head'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Head assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HealthAndBeautyBusiness.php b/src/models/jsonld/HealthAndBeautyBusiness.php index 1c307e2b2..c5ab821fd 100644 --- a/src/models/jsonld/HealthAndBeautyBusiness.php +++ b/src/models/jsonld/HealthAndBeautyBusiness.php @@ -23,330 +23,330 @@ */ class HealthAndBeautyBusiness extends MetaJsonLd implements HealthAndBeautyBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HealthAndBeautyBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HealthAndBeautyBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthAndBeautyBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthAndBeautyBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Health and beauty.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Health and beauty.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HealthAspectEnumeration.php b/src/models/jsonld/HealthAspectEnumeration.php index d7a4f0804..5f4a8dd80 100644 --- a/src/models/jsonld/HealthAspectEnumeration.php +++ b/src/models/jsonld/HealthAspectEnumeration.php @@ -25,125 +25,125 @@ */ class HealthAspectEnumeration extends MetaJsonLd implements HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthAspectEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'HealthAspectEnumeration enumerates several aspects of health content online, each of which might be described using [[hasHealthAspect]] and [[HealthTopicContent]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthAspectEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'HealthAspectEnumeration enumerates several aspects of health content online, each of which might be described using [[hasHealthAspect]] and [[HealthTopicContent]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HealthCare.php b/src/models/jsonld/HealthCare.php index 91de0eefd..2bfbd59fc 100644 --- a/src/models/jsonld/HealthCare.php +++ b/src/models/jsonld/HealthCare.php @@ -23,126 +23,126 @@ */ class HealthCare extends MetaJsonLd implements HealthCareInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HealthCareTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthCare'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthCare'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'HealthCare: this is a benefit for health care.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HealthCareTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthCare'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthCare'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'HealthCare: this is a benefit for health care.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HealthClub.php b/src/models/jsonld/HealthClub.php index c10d9968e..8edfa543d 100644 --- a/src/models/jsonld/HealthClub.php +++ b/src/models/jsonld/HealthClub.php @@ -23,332 +23,332 @@ */ class HealthClub extends MetaJsonLd implements HealthClubInterface, HealthAndBeautyBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, SportsActivityLocationInterface { - use HealthClubTrait; - use HealthAndBeautyBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use SportsActivityLocationTrait; + use HealthClubTrait; + use HealthAndBeautyBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use SportsActivityLocationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A health club.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A health club.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HealthInsurancePlan.php b/src/models/jsonld/HealthInsurancePlan.php index a19ebedb6..1b3c30183 100644 --- a/src/models/jsonld/HealthInsurancePlan.php +++ b/src/models/jsonld/HealthInsurancePlan.php @@ -23,140 +23,140 @@ */ class HealthInsurancePlan extends MetaJsonLd implements HealthInsurancePlanInterface, IntangibleInterface, ThingInterface { - use HealthInsurancePlanTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthInsurancePlan'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthInsurancePlan'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A US-style health insurance plan, including PPOs, EPOs, and HMOs. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'benefitsSummaryUrl' => ['URL'], - 'contactPoint' => ['ContactPoint'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'healthPlanDrugOption' => ['Text'], - 'healthPlanDrugTier' => ['Text'], - 'healthPlanId' => ['Text'], - 'healthPlanMarketingUrl' => ['URL'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includesHealthPlanFormulary' => ['HealthPlanFormulary'], - 'includesHealthPlanNetwork' => ['HealthPlanNetwork'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'usesHealthPlanIdStandard' => ['URL', 'Text'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'benefitsSummaryUrl' => 'The URL that goes directly to the summary of benefits and coverage for the specific standard plan or plan variation.', - 'contactPoint' => 'A contact point for a person or organization.', - 'description' => 'A description of the item.', - '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.', - 'healthPlanDrugOption' => 'TODO.', - 'healthPlanDrugTier' => 'The tier(s) of drugs offered by this formulary or insurance plan.', - 'healthPlanId' => 'The 14-character, HIOS-generated Plan ID number. (Plan IDs must be unique, even across different markets.)', - 'healthPlanMarketingUrl' => 'The URL that goes directly to the plan brochure for the specific standard plan or plan variation.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includesHealthPlanFormulary' => 'Formularies covered by this plan.', - 'includesHealthPlanNetwork' => 'Networks covered by this plan.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'usesHealthPlanIdStandard' => 'The standard for interpreting the Plan ID. The preferred is "HIOS". See the Centers for Medicare & Medicaid Services for more details.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HealthInsurancePlanTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthInsurancePlan'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthInsurancePlan'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A US-style health insurance plan, including PPOs, EPOs, and HMOs. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'benefitsSummaryUrl' => ['URL'], + 'contactPoint' => ['ContactPoint'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'healthPlanDrugOption' => ['Text'], + 'healthPlanDrugTier' => ['Text'], + 'healthPlanId' => ['Text'], + 'healthPlanMarketingUrl' => ['URL'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includesHealthPlanFormulary' => ['HealthPlanFormulary'], + 'includesHealthPlanNetwork' => ['HealthPlanNetwork'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'usesHealthPlanIdStandard' => ['URL', 'Text'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'benefitsSummaryUrl' => 'The URL that goes directly to the summary of benefits and coverage for the specific standard plan or plan variation.', + 'contactPoint' => 'A contact point for a person or organization.', + 'description' => 'A description of the item.', + '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.', + 'healthPlanDrugOption' => 'TODO.', + 'healthPlanDrugTier' => 'The tier(s) of drugs offered by this formulary or insurance plan.', + 'healthPlanId' => 'The 14-character, HIOS-generated Plan ID number. (Plan IDs must be unique, even across different markets.)', + 'healthPlanMarketingUrl' => 'The URL that goes directly to the plan brochure for the specific standard plan or plan variation.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includesHealthPlanFormulary' => 'Formularies covered by this plan.', + 'includesHealthPlanNetwork' => 'Networks covered by this plan.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'usesHealthPlanIdStandard' => 'The standard for interpreting the Plan ID. The preferred is "HIOS". See the Centers for Medicare & Medicaid Services for more details.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HealthPlanCostSharingSpecification.php b/src/models/jsonld/HealthPlanCostSharingSpecification.php index dd4e0a8bb..cbfcfc4ff 100644 --- a/src/models/jsonld/HealthPlanCostSharingSpecification.php +++ b/src/models/jsonld/HealthPlanCostSharingSpecification.php @@ -23,132 +23,132 @@ */ class HealthPlanCostSharingSpecification extends MetaJsonLd implements HealthPlanCostSharingSpecificationInterface, IntangibleInterface, ThingInterface { - use HealthPlanCostSharingSpecificationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthPlanCostSharingSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthPlanCostSharingSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A description of costs to the patient under a given network or formulary.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'healthPlanCoinsuranceOption' => ['Text'], - 'healthPlanCoinsuranceRate' => ['Number'], - 'healthPlanCopay' => ['PriceSpecification'], - 'healthPlanCopayOption' => ['Text'], - 'healthPlanPharmacyCategory' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'healthPlanCoinsuranceOption' => 'Whether the coinsurance applies before or after deductible, etc. TODO: Is this a closed set?', - 'healthPlanCoinsuranceRate' => 'The rate of coinsurance expressed as a number between 0.0 and 1.0.', - 'healthPlanCopay' => 'The copay amount.', - 'healthPlanCopayOption' => 'Whether the copay is before or after deductible, etc. TODO: Is this a closed set?', - 'healthPlanPharmacyCategory' => 'The category or type of pharmacy associated with this cost sharing.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HealthPlanCostSharingSpecificationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthPlanCostSharingSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthPlanCostSharingSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A description of costs to the patient under a given network or formulary.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'healthPlanCoinsuranceOption' => ['Text'], + 'healthPlanCoinsuranceRate' => ['Number'], + 'healthPlanCopay' => ['PriceSpecification'], + 'healthPlanCopayOption' => ['Text'], + 'healthPlanPharmacyCategory' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'healthPlanCoinsuranceOption' => 'Whether the coinsurance applies before or after deductible, etc. TODO: Is this a closed set?', + 'healthPlanCoinsuranceRate' => 'The rate of coinsurance expressed as a number between 0.0 and 1.0.', + 'healthPlanCopay' => 'The copay amount.', + 'healthPlanCopayOption' => 'Whether the copay is before or after deductible, etc. TODO: Is this a closed set?', + 'healthPlanPharmacyCategory' => 'The category or type of pharmacy associated with this cost sharing.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HealthPlanFormulary.php b/src/models/jsonld/HealthPlanFormulary.php index 2512cd014..788453db6 100644 --- a/src/models/jsonld/HealthPlanFormulary.php +++ b/src/models/jsonld/HealthPlanFormulary.php @@ -24,128 +24,128 @@ */ class HealthPlanFormulary extends MetaJsonLd implements HealthPlanFormularyInterface, IntangibleInterface, ThingInterface { - use HealthPlanFormularyTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthPlanFormulary'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthPlanFormulary'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'For a given health insurance plan, the specification for costs and coverage of prescription drugs. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'healthPlanCostSharing' => ['Boolean'], - 'healthPlanDrugTier' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offersPrescriptionByMail' => ['Boolean'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'healthPlanCostSharing' => 'The costs to the patient for services under this network or formulary.', - 'healthPlanDrugTier' => 'The tier(s) of drugs offered by this formulary or insurance plan.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'offersPrescriptionByMail' => 'Whether prescriptions can be delivered by mail.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HealthPlanFormularyTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthPlanFormulary'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthPlanFormulary'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'For a given health insurance plan, the specification for costs and coverage of prescription drugs. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'healthPlanCostSharing' => ['Boolean'], + 'healthPlanDrugTier' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offersPrescriptionByMail' => ['Boolean'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'healthPlanCostSharing' => 'The costs to the patient for services under this network or formulary.', + 'healthPlanDrugTier' => 'The tier(s) of drugs offered by this formulary or insurance plan.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'offersPrescriptionByMail' => 'Whether prescriptions can be delivered by mail.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HealthPlanNetwork.php b/src/models/jsonld/HealthPlanNetwork.php index ddbb718ea..14255e178 100644 --- a/src/models/jsonld/HealthPlanNetwork.php +++ b/src/models/jsonld/HealthPlanNetwork.php @@ -23,128 +23,128 @@ */ class HealthPlanNetwork extends MetaJsonLd implements HealthPlanNetworkInterface, IntangibleInterface, ThingInterface { - use HealthPlanNetworkTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthPlanNetwork'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthPlanNetwork'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A US-style health insurance plan network. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'healthPlanCostSharing' => ['Boolean'], - 'healthPlanNetworkId' => ['Text'], - 'healthPlanNetworkTier' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'healthPlanCostSharing' => 'The costs to the patient for services under this network or formulary.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - 'healthPlanNetworkTier' => 'The tier(s) for this network.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HealthPlanNetworkTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthPlanNetwork'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthPlanNetwork'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A US-style health insurance plan network. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'healthPlanCostSharing' => ['Boolean'], + 'healthPlanNetworkId' => ['Text'], + 'healthPlanNetworkTier' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'healthPlanCostSharing' => 'The costs to the patient for services under this network or formulary.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + 'healthPlanNetworkTier' => 'The tier(s) for this network.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HealthTopicContent.php b/src/models/jsonld/HealthTopicContent.php index cd0669c42..61c2a1041 100644 --- a/src/models/jsonld/HealthTopicContent.php +++ b/src/models/jsonld/HealthTopicContent.php @@ -30,349 +30,349 @@ */ class HealthTopicContent extends MetaJsonLd implements HealthTopicContentInterface, WebContentInterface, CreativeWorkInterface, ThingInterface { - use HealthTopicContentTrait; - use WebContentTrait; - use CreativeWorkTrait; - use ThingTrait; + use HealthTopicContentTrait; + use WebContentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthTopicContent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthTopicContent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthTopicContent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthTopicContent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebContent'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebContent'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "[[HealthTopicContent]] is [[WebContent]] that is about some aspect of a health topic, e.g. a condition, its symptoms or treatments. Such content may be comprised of several parts or sections and use different types of media. Multiple instances of [[WebContent]] (and hence [[HealthTopicContent]]) can be related using [[hasPart]] / [[isPartOf]] where there is some kind of content hierarchy, and their content described with [[about]] and [[mentions]] e.g. building upon the existing [[MedicalCondition]] vocabulary.\n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "[[HealthTopicContent]] is [[WebContent]] that is about some aspect of a health topic, e.g. a condition, its symptoms or treatments. Such content may be comprised of several parts or sections and use different types of media. Multiple instances of [[WebContent]] (and hence [[HealthTopicContent]]) can be related using [[hasPart]] / [[isPartOf]] where there is some kind of content hierarchy, and their content described with [[about]] and [[mentions]] e.g. building upon the existing [[MedicalCondition]] vocabulary.\n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasHealthAspect' => ['HealthAspectEnumeration'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasHealthAspect' => ['HealthAspectEnumeration'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasHealthAspect' => 'Indicates the aspect or aspects specifically addressed in some [[HealthTopicContent]]. For example, that the content is an overview, or that it talks about treatment, self-care, treatments or their side-effects.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasHealthAspect' => 'Indicates the aspect or aspects specifically addressed in some [[HealthTopicContent]]. For example, that the content is an overview, or that it talks about treatment, self-care, treatments or their side-effects.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HealthcareConsideration.php b/src/models/jsonld/HealthcareConsideration.php index c4b8d30f4..04d3da821 100644 --- a/src/models/jsonld/HealthcareConsideration.php +++ b/src/models/jsonld/HealthcareConsideration.php @@ -24,126 +24,126 @@ */ class HealthcareConsideration extends MetaJsonLd implements HealthcareConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HealthcareConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HealthcareConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HealthcareConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Item is a pharmaceutical (e.g., a prescription or OTC drug) or a restricted medical device.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HealthcareConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HealthcareConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HealthcareConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Item is a pharmaceutical (e.g., a prescription or OTC drug) or a restricted medical device.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HearingImpairedSupported.php b/src/models/jsonld/HearingImpairedSupported.php index f39b6210f..6e904c1fd 100644 --- a/src/models/jsonld/HearingImpairedSupported.php +++ b/src/models/jsonld/HearingImpairedSupported.php @@ -23,126 +23,126 @@ */ class HearingImpairedSupported extends MetaJsonLd implements HearingImpairedSupportedInterface, ContactPointOptionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HearingImpairedSupportedTrait; - use ContactPointOptionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HearingImpairedSupported'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HearingImpairedSupported'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ContactPointOption'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Uses devices to support users with hearing impairments.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HearingImpairedSupportedTrait; + use ContactPointOptionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HearingImpairedSupported'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HearingImpairedSupported'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ContactPointOption'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Uses devices to support users with hearing impairments.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Hematologic.php b/src/models/jsonld/Hematologic.php index 5a4acd1bf..dfae6963e 100644 --- a/src/models/jsonld/Hematologic.php +++ b/src/models/jsonld/Hematologic.php @@ -24,128 +24,128 @@ */ class Hematologic extends MetaJsonLd implements HematologicInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use HematologicTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Hematologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Hematologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of blood and blood producing organs.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HematologicTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Hematologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Hematologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of blood and blood producing organs.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HighSchool.php b/src/models/jsonld/HighSchool.php index f2d181659..8011888f2 100644 --- a/src/models/jsonld/HighSchool.php +++ b/src/models/jsonld/HighSchool.php @@ -23,323 +23,323 @@ */ class HighSchool extends MetaJsonLd implements HighSchoolInterface, EducationalOrganizationInterface, CivicStructureInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HighSchoolTrait; - use EducationalOrganizationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HighSchoolTrait; + use EducationalOrganizationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HighSchool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HighSchool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HighSchool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HighSchool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A high school.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A high school.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HinduDiet.php b/src/models/jsonld/HinduDiet.php index ed5cf9459..2d804ea26 100644 --- a/src/models/jsonld/HinduDiet.php +++ b/src/models/jsonld/HinduDiet.php @@ -23,126 +23,126 @@ */ class HinduDiet extends MetaJsonLd implements HinduDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HinduDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HinduDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HinduDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet conforming to Hindu dietary practices, in particular, beef-free.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HinduDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HinduDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HinduDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet conforming to Hindu dietary practices, in particular, beef-free.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HinduTemple.php b/src/models/jsonld/HinduTemple.php index 9e1363365..f1a69c5e4 100644 --- a/src/models/jsonld/HinduTemple.php +++ b/src/models/jsonld/HinduTemple.php @@ -23,216 +23,216 @@ */ class HinduTemple extends MetaJsonLd implements HinduTempleInterface, PlaceOfWorshipInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use HinduTempleTrait; - use PlaceOfWorshipTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HinduTemple'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HinduTemple'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Hindu temple.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HinduTempleTrait; + use PlaceOfWorshipTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HinduTemple'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HinduTemple'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Hindu temple.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HobbyShop.php b/src/models/jsonld/HobbyShop.php index f8bfac11e..de84d4ae2 100644 --- a/src/models/jsonld/HobbyShop.php +++ b/src/models/jsonld/HobbyShop.php @@ -23,331 +23,331 @@ */ class HobbyShop extends MetaJsonLd implements HobbyShopInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HobbyShopTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HobbyShopTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HobbyShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HobbyShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HobbyShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HobbyShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A store that sells materials useful or necessary for various hobbies.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A store that sells materials useful or necessary for various hobbies.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HomeAndConstructionBusiness.php b/src/models/jsonld/HomeAndConstructionBusiness.php index bb1539d9b..2457cda8e 100644 --- a/src/models/jsonld/HomeAndConstructionBusiness.php +++ b/src/models/jsonld/HomeAndConstructionBusiness.php @@ -26,330 +26,330 @@ */ class HomeAndConstructionBusiness extends MetaJsonLd implements HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HomeAndConstructionBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HomeAndConstructionBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A construction business.\n\nA HomeAndConstructionBusiness is a [[LocalBusiness]] that provides services around homes and buildings.\n\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\(s).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A construction business.\n\nA HomeAndConstructionBusiness is a [[LocalBusiness]] that provides services around homes and buildings.\n\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\(s).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HomeGoodsStore.php b/src/models/jsonld/HomeGoodsStore.php index 1ba2e8a43..67e3b16cb 100644 --- a/src/models/jsonld/HomeGoodsStore.php +++ b/src/models/jsonld/HomeGoodsStore.php @@ -23,331 +23,331 @@ */ class HomeGoodsStore extends MetaJsonLd implements HomeGoodsStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HomeGoodsStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HomeGoodsStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HomeGoodsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HomeGoodsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HomeGoodsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HomeGoodsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A home goods store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A home goods store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Homeopathic.php b/src/models/jsonld/Homeopathic.php index 6df214065..55943bec4 100644 --- a/src/models/jsonld/Homeopathic.php +++ b/src/models/jsonld/Homeopathic.php @@ -24,127 +24,127 @@ */ class Homeopathic extends MetaJsonLd implements HomeopathicInterface, MedicineSystemInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HomeopathicTrait; - use MedicineSystemTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Homeopathic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Homeopathic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A system of medicine based on the principle that a disease can be cured by a substance that produces similar symptoms in healthy people.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HomeopathicTrait; + use MedicineSystemTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Homeopathic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Homeopathic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A system of medicine based on the principle that a disease can be cured by a substance that produces similar symptoms in healthy people.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Hospital.php b/src/models/jsonld/Hospital.php index 4268e7915..b74ac36cd 100644 --- a/src/models/jsonld/Hospital.php +++ b/src/models/jsonld/Hospital.php @@ -23,343 +23,343 @@ */ class Hospital extends MetaJsonLd implements HospitalInterface, EmergencyServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalOrganizationInterface, CivicStructureInterface { - use HospitalTrait; - use EmergencyServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalOrganizationTrait; - use CivicStructureTrait; + use HospitalTrait; + use EmergencyServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalOrganizationTrait; + use CivicStructureTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Hospital'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Hospital'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Hospital'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Hospital'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EmergencyService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EmergencyService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A hospital.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A hospital.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'healthcareReportingData' => ['CDCPMDRecord', 'Dataset'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'healthcareReportingData' => ['CDCPMDRecord', 'Dataset'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'availableService' => 'A medical service available from this provider.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - 'healthcareReportingData' => 'Indicates data describing a hospital, e.g. a CDC [[CDCPMDRecord]] or as some kind of [[Dataset]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'availableService' => 'A medical service available from this provider.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + 'healthcareReportingData' => 'Indicates data describing a hospital, e.g. a CDC [[CDCPMDRecord]] or as some kind of [[Dataset]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Hostel.php b/src/models/jsonld/Hostel.php index 1791f5c24..2843b336f 100644 --- a/src/models/jsonld/Hostel.php +++ b/src/models/jsonld/Hostel.php @@ -25,345 +25,345 @@ */ class Hostel extends MetaJsonLd implements HostelInterface, LodgingBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HostelTrait; - use LodgingBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HostelTrait; + use LodgingBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Hostel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Hostel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Hostel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Hostel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A hostel - cheap accommodation, often in shared dormitories.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A hostel - cheap accommodation, often in shared dormitories.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Hotel.php b/src/models/jsonld/Hotel.php index b17085ada..54e828522 100644 --- a/src/models/jsonld/Hotel.php +++ b/src/models/jsonld/Hotel.php @@ -27,345 +27,345 @@ */ class Hotel extends MetaJsonLd implements HotelInterface, LodgingBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HotelTrait; - use LodgingBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HotelTrait; + use LodgingBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Hotel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Hotel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Hotel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Hotel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A hotel is an establishment that provides lodging paid on a short-term basis (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Hotel).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A hotel is an establishment that provides lodging paid on a short-term basis (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Hotel).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HotelRoom.php b/src/models/jsonld/HotelRoom.php index db8732ebf..e883a8f23 100644 --- a/src/models/jsonld/HotelRoom.php +++ b/src/models/jsonld/HotelRoom.php @@ -25,244 +25,244 @@ */ class HotelRoom extends MetaJsonLd implements HotelRoomInterface, RoomInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use HotelRoomTrait; - use RoomTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use HotelRoomTrait; + use RoomTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HotelRoom'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HotelRoom'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HotelRoom'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HotelRoom'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Room'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Room'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A hotel room is a single room in a hotel.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A hotel room is a single room in a hotel.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'bed' => ['Text', 'BedDetails', 'BedType'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'occupancy' => ['QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'bed' => ['Text', 'BedDetails', 'BedType'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'occupancy' => ['QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bed' => 'The type of bed or beds included in the accommodation. For the single case of just one bed of a certain type, you use bed directly with a text. If you want to indicate the quantity of a certain kind of bed, use an instance of BedDetails. For more detailed information, use the amenityFeature property.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bed' => 'The type of bed or beds included in the accommodation. For the single case of just one bed of a certain type, you use bed directly with a text. If you want to indicate the quantity of a certain kind of bed, use an instance of BedDetails. For more detailed information, use the amenityFeature property.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/House.php b/src/models/jsonld/House.php index 85fde0a1b..84d5a21e5 100644 --- a/src/models/jsonld/House.php +++ b/src/models/jsonld/House.php @@ -26,239 +26,239 @@ */ class House extends MetaJsonLd implements HouseInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use HouseTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use HouseTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'House'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'House'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/House'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/House'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A house is a building or structure that has the ability to be occupied for habitation by humans or other creatures (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/House).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A house is a building or structure that has the ability to be occupied for habitation by humans or other creatures (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/House).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HousePainter.php b/src/models/jsonld/HousePainter.php index 6d386c2ef..5dd4012f4 100644 --- a/src/models/jsonld/HousePainter.php +++ b/src/models/jsonld/HousePainter.php @@ -23,331 +23,331 @@ */ class HousePainter extends MetaJsonLd implements HousePainterInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use HousePainterTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use HousePainterTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HousePainter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HousePainter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HousePainter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HousePainter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A house painting service.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A house painting service.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HowItWorksHealthAspect.php b/src/models/jsonld/HowItWorksHealthAspect.php index 829b269ba..2745fc880 100644 --- a/src/models/jsonld/HowItWorksHealthAspect.php +++ b/src/models/jsonld/HowItWorksHealthAspect.php @@ -24,126 +24,126 @@ */ class HowItWorksHealthAspect extends MetaJsonLd implements HowItWorksHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HowItWorksHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowItWorksHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowItWorksHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content that discusses and explains how a particular health-related topic works, e.g. in terms of mechanisms and underlying science.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HowItWorksHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowItWorksHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowItWorksHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content that discusses and explains how a particular health-related topic works, e.g. in terms of mechanisms and underlying science.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HowOrWhereHealthAspect.php b/src/models/jsonld/HowOrWhereHealthAspect.php index cdc5973a3..97fcd762c 100644 --- a/src/models/jsonld/HowOrWhereHealthAspect.php +++ b/src/models/jsonld/HowOrWhereHealthAspect.php @@ -24,126 +24,126 @@ */ class HowOrWhereHealthAspect extends MetaJsonLd implements HowOrWhereHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use HowOrWhereHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowOrWhereHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowOrWhereHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Information about how or where to find a topic. Also may contain location data that can be used for where to look for help if the topic is observed.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HowOrWhereHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowOrWhereHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowOrWhereHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Information about how or where to find a topic. Also may contain location data that can be used for where to look for help if the topic is observed.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HowTo.php b/src/models/jsonld/HowTo.php index d587281b1..a97282a88 100644 --- a/src/models/jsonld/HowTo.php +++ b/src/models/jsonld/HowTo.php @@ -24,364 +24,364 @@ */ class HowTo extends MetaJsonLd implements HowToInterface, CreativeWorkInterface, ThingInterface { - use HowToTrait; - use CreativeWorkTrait; - use ThingTrait; + use HowToTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowTo'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowTo'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowTo'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowTo'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Instructions that explain how to achieve a result by performing a sequence of steps.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Instructions that explain how to achieve a result by performing a sequence of steps.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'estimatedCost' => ['Text', 'MonetaryAmount'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'performTime' => ['Duration'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'prepTime' => ['Duration'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'step' => ['HowToSection', 'HowToStep', 'Text', 'CreativeWork'], - 'steps' => ['Text', 'ItemList', 'CreativeWork'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supply' => ['Text', 'HowToSupply'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'tool' => ['HowToTool', 'Text'], - 'totalTime' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'yield' => ['QuantitativeValue', 'Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'estimatedCost' => ['Text', 'MonetaryAmount'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'performTime' => ['Duration'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'prepTime' => ['Duration'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'step' => ['HowToSection', 'HowToStep', 'Text', 'CreativeWork'], + 'steps' => ['Text', 'ItemList', 'CreativeWork'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supply' => ['Text', 'HowToSupply'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'tool' => ['HowToTool', 'Text'], + 'totalTime' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'yield' => ['QuantitativeValue', 'Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'estimatedCost' => 'The estimated cost of the supply or supplies consumed when performing instructions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'performTime' => 'The length of time it takes to perform instructions or a direction (not including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'prepTime' => 'The length of time it takes to prepare the items to be used in instructions or a direction, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'step' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection.', - 'steps' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed \'steps\'; \'step\' is preferred).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supply' => 'A sub-property of instrument. A supply consumed when performing instructions or a direction.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'tool' => 'A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.', - 'totalTime' => 'The total time required to perform instructions or a direction (including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'yield' => 'The quantity that results by performing instructions. For example, a paper airplane, 10 personalized candles.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'estimatedCost' => 'The estimated cost of the supply or supplies consumed when performing instructions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'performTime' => 'The length of time it takes to perform instructions or a direction (not including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'prepTime' => 'The length of time it takes to prepare the items to be used in instructions or a direction, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'step' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection.', + 'steps' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed \'steps\'; \'step\' is preferred).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supply' => 'A sub-property of instrument. A supply consumed when performing instructions or a direction.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'tool' => 'A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.', + 'totalTime' => 'The total time required to perform instructions or a direction (including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'yield' => 'The quantity that results by performing instructions. For example, a paper airplane, 10 personalized candles.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HowToDirection.php b/src/models/jsonld/HowToDirection.php index 271b09751..c0be65b1e 100644 --- a/src/models/jsonld/HowToDirection.php +++ b/src/models/jsonld/HowToDirection.php @@ -24,370 +24,370 @@ */ class HowToDirection extends MetaJsonLd implements HowToDirectionInterface, CreativeWorkInterface, ThingInterface, ListItemInterface, IntangibleInterface { - use HowToDirectionTrait; - use CreativeWorkTrait; - use ThingTrait; - use ListItemTrait; - use IntangibleTrait; + use HowToDirectionTrait; + use CreativeWorkTrait; + use ThingTrait; + use ListItemTrait; + use IntangibleTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowToDirection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowToDirection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowToDirection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowToDirection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A direction indicating a single action to do in the instructions for how to achieve a result.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A direction indicating a single action to do in the instructions for how to achieve a result.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'afterMedia' => ['MediaObject', 'URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'beforeMedia' => ['MediaObject', 'URL'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duringMedia' => ['MediaObject', 'URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'item' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'performTime' => ['Duration'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'prepTime' => ['Duration'], - 'previousItem' => ['ListItem'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supply' => ['Text', 'HowToSupply'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'tool' => ['HowToTool', 'Text'], - 'totalTime' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'afterMedia' => ['MediaObject', 'URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'beforeMedia' => ['MediaObject', 'URL'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duringMedia' => ['MediaObject', 'URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'item' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'performTime' => ['Duration'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'prepTime' => ['Duration'], + 'previousItem' => ['ListItem'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supply' => ['Text', 'HowToSupply'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'tool' => ['HowToTool', 'Text'], + 'totalTime' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'afterMedia' => 'A media object representing the circumstances after performing this direction.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'beforeMedia' => 'A media object representing the circumstances before performing this direction.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duringMedia' => 'A media object representing the circumstances while performing this direction.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'performTime' => 'The length of time it takes to perform instructions or a direction (not including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'prepTime' => 'The length of time it takes to prepare the items to be used in instructions or a direction, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supply' => 'A sub-property of instrument. A supply consumed when performing instructions or a direction.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'tool' => 'A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.', - 'totalTime' => 'The total time required to perform instructions or a direction (including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'afterMedia' => 'A media object representing the circumstances after performing this direction.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'beforeMedia' => 'A media object representing the circumstances before performing this direction.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duringMedia' => 'A media object representing the circumstances while performing this direction.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'performTime' => 'The length of time it takes to perform instructions or a direction (not including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'prepTime' => 'The length of time it takes to prepare the items to be used in instructions or a direction, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supply' => 'A sub-property of instrument. A supply consumed when performing instructions or a direction.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'tool' => 'A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.', + 'totalTime' => 'The total time required to perform instructions or a direction (including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HowToItem.php b/src/models/jsonld/HowToItem.php index de41596bc..35ea896a4 100644 --- a/src/models/jsonld/HowToItem.php +++ b/src/models/jsonld/HowToItem.php @@ -24,133 +24,133 @@ */ class HowToItem extends MetaJsonLd implements HowToItemInterface, ListItemInterface, IntangibleInterface, ThingInterface { - use HowToItemTrait; - use ListItemTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowToItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowToItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ListItem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An item used as either a tool or supply when performing the instructions for how to achieve a result.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'item' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'previousItem' => ['ListItem'], - 'requiredQuantity' => ['Text', 'Number', 'QuantitativeValue'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - '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.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - 'requiredQuantity' => 'The required quantity of the item(s).', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HowToItemTrait; + use ListItemTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowToItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowToItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ListItem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An item used as either a tool or supply when performing the instructions for how to achieve a result.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'item' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'previousItem' => ['ListItem'], + 'requiredQuantity' => ['Text', 'Number', 'QuantitativeValue'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + '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.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + 'requiredQuantity' => 'The required quantity of the item(s).', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HowToSection.php b/src/models/jsonld/HowToSection.php index a409ad67b..447591a00 100644 --- a/src/models/jsonld/HowToSection.php +++ b/src/models/jsonld/HowToSection.php @@ -24,363 +24,363 @@ */ class HowToSection extends MetaJsonLd implements HowToSectionInterface, ItemListInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface, ListItemInterface { - use HowToSectionTrait; - use ItemListTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; - use ListItemTrait; + use HowToSectionTrait; + use ItemListTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; + use ListItemTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowToSection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowToSection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowToSection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowToSection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemList'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemList'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A sub-grouping of steps in the instructions for how to achieve a result (e.g. steps for making a pie crust within a pie recipe).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A sub-grouping of steps in the instructions for how to achieve a result (e.g. steps for making a pie crust within a pie recipe).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'item' => ['Thing'], - 'itemListElement' => ['ListItem', 'Text', 'Thing'], - 'itemListOrder' => ['ItemListOrderType', 'Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'numberOfItems' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'previousItem' => ['ListItem'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'steps' => ['Text', 'ItemList', 'CreativeWork'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'item' => ['Thing'], + 'itemListElement' => ['ListItem', 'Text', 'Thing'], + 'itemListOrder' => ['ItemListOrderType', 'Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'numberOfItems' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'previousItem' => ['ListItem'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'steps' => ['Text', 'ItemList', 'CreativeWork'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', - 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'steps' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed \'steps\'; \'step\' is preferred).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', + 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'steps' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed \'steps\'; \'step\' is preferred).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HowToStep.php b/src/models/jsonld/HowToStep.php index 7dbb0456b..032ade8af 100644 --- a/src/models/jsonld/HowToStep.php +++ b/src/models/jsonld/HowToStep.php @@ -24,361 +24,361 @@ */ class HowToStep extends MetaJsonLd implements HowToStepInterface, ItemListInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface, ListItemInterface { - use HowToStepTrait; - use ItemListTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; - use ListItemTrait; + use HowToStepTrait; + use ItemListTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; + use ListItemTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowToStep'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowToStep'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowToStep'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowToStep'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemList'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemList'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A step in the instructions for how to achieve a result. It is an ordered list with HowToDirection and/or HowToTip items.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A step in the instructions for how to achieve a result. It is an ordered list with HowToDirection and/or HowToTip items.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'item' => ['Thing'], - 'itemListElement' => ['ListItem', 'Text', 'Thing'], - 'itemListOrder' => ['ItemListOrderType', 'Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'numberOfItems' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'previousItem' => ['ListItem'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'item' => ['Thing'], + 'itemListElement' => ['ListItem', 'Text', 'Thing'], + 'itemListOrder' => ['ItemListOrderType', 'Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'numberOfItems' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'previousItem' => ['ListItem'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', - 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', + 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HowToSupply.php b/src/models/jsonld/HowToSupply.php index 415294d6e..1275e336e 100644 --- a/src/models/jsonld/HowToSupply.php +++ b/src/models/jsonld/HowToSupply.php @@ -24,136 +24,136 @@ */ class HowToSupply extends MetaJsonLd implements HowToSupplyInterface, HowToItemInterface, ListItemInterface, IntangibleInterface, ThingInterface { - use HowToSupplyTrait; - use HowToItemTrait; - use ListItemTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowToSupply'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowToSupply'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HowToItem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A supply consumed when performing the instructions for how to achieve a result.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'estimatedCost' => ['Text', 'MonetaryAmount'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'item' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'previousItem' => ['ListItem'], - 'requiredQuantity' => ['Text', 'Number', 'QuantitativeValue'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'estimatedCost' => 'The estimated cost of the supply or supplies consumed when performing instructions.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - '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.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - 'requiredQuantity' => 'The required quantity of the item(s).', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HowToSupplyTrait; + use HowToItemTrait; + use ListItemTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowToSupply'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowToSupply'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HowToItem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A supply consumed when performing the instructions for how to achieve a result.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'estimatedCost' => ['Text', 'MonetaryAmount'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'item' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'previousItem' => ['ListItem'], + 'requiredQuantity' => ['Text', 'Number', 'QuantitativeValue'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'estimatedCost' => 'The estimated cost of the supply or supplies consumed when performing instructions.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + '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.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + 'requiredQuantity' => 'The required quantity of the item(s).', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HowToTip.php b/src/models/jsonld/HowToTip.php index 91a7f2603..79b1d0122 100644 --- a/src/models/jsonld/HowToTip.php +++ b/src/models/jsonld/HowToTip.php @@ -26,354 +26,354 @@ */ class HowToTip extends MetaJsonLd implements HowToTipInterface, ListItemInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use HowToTipTrait; - use ListItemTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use HowToTipTrait; + use ListItemTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowToTip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowToTip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowToTip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowToTip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ListItem'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ListItem'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An explanation in the instructions for how to achieve a result. It provides supplementary information about a technique, supply, author\'s preference, etc. It can explain what could be done, or what should not be done, but doesn\'t specify what should be done (see HowToDirection).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An explanation in the instructions for how to achieve a result. It provides supplementary information about a technique, supply, author\'s preference, etc. It can explain what could be done, or what should not be done, but doesn\'t specify what should be done (see HowToDirection).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'item' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'previousItem' => ['ListItem'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'item' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'previousItem' => ['ListItem'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HowToTool.php b/src/models/jsonld/HowToTool.php index fbb63b807..19df80471 100644 --- a/src/models/jsonld/HowToTool.php +++ b/src/models/jsonld/HowToTool.php @@ -24,134 +24,134 @@ */ class HowToTool extends MetaJsonLd implements HowToToolInterface, HowToItemInterface, ListItemInterface, IntangibleInterface, ThingInterface { - use HowToToolTrait; - use HowToItemTrait; - use ListItemTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HowToTool'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HowToTool'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HowToItem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A tool used (but not consumed) when performing instructions for how to achieve a result.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'item' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'previousItem' => ['ListItem'], - 'requiredQuantity' => ['Text', 'Number', 'QuantitativeValue'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - '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.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - 'requiredQuantity' => 'The required quantity of the item(s).', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use HowToToolTrait; + use HowToItemTrait; + use ListItemTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HowToTool'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HowToTool'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HowToItem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A tool used (but not consumed) when performing instructions for how to achieve a result.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'item' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'previousItem' => ['ListItem'], + 'requiredQuantity' => ['Text', 'Number', 'QuantitativeValue'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + '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.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + 'requiredQuantity' => 'The required quantity of the item(s).', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/HyperToc.php b/src/models/jsonld/HyperToc.php index ac67ccb14..2f5ae9ed4 100644 --- a/src/models/jsonld/HyperToc.php +++ b/src/models/jsonld/HyperToc.php @@ -28,348 +28,348 @@ */ class HyperToc extends MetaJsonLd implements HyperTocInterface, CreativeWorkInterface, ThingInterface { - use HyperTocTrait; - use CreativeWorkTrait; - use ThingTrait; + use HyperTocTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HyperToc'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HyperToc'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HyperToc'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HyperToc'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A HyperToc represents a hypertext table of contents for complex media objects, such as [[VideoObject]], [[AudioObject]]. Items in the table of contents are indicated using the [[tocEntry]] property, and typed [[HyperTocEntry]]. For cases where the same larger work is split into multiple files, [[associatedMedia]] can be used on individual [[HyperTocEntry]] items.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A HyperToc represents a hypertext table of contents for complex media objects, such as [[VideoObject]], [[AudioObject]]. Items in the table of contents are indicated using the [[tocEntry]] property, and typed [[HyperTocEntry]]. For cases where the same larger work is split into multiple files, [[associatedMedia]] can be used on individual [[HyperTocEntry]] items.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'tocEntry' => ['HyperTocEntry'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'tocEntry' => ['HyperTocEntry'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'tocEntry' => 'Indicates a [[HyperTocEntry]] in a [[HyperToc]].', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'tocEntry' => 'Indicates a [[HyperTocEntry]] in a [[HyperToc]].', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/HyperTocEntry.php b/src/models/jsonld/HyperTocEntry.php index 4eda54234..de1b0223e 100644 --- a/src/models/jsonld/HyperTocEntry.php +++ b/src/models/jsonld/HyperTocEntry.php @@ -31,350 +31,350 @@ */ class HyperTocEntry extends MetaJsonLd implements HyperTocEntryInterface, CreativeWorkInterface, ThingInterface { - use HyperTocEntryTrait; - use CreativeWorkTrait; - use ThingTrait; + use HyperTocEntryTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'HyperTocEntry'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'HyperTocEntry'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/HyperTocEntry'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/HyperTocEntry'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A HyperToEntry is an item within a [[HyperToc]], which represents a hypertext table of contents for complex media objects, such as [[VideoObject]], [[AudioObject]]. The media object itself is indicated using [[associatedMedia]]. Each section of interest within that content can be described with a [[HyperTocEntry]], with associated [[startOffset]] and [[endOffset]]. When several entries are all from the same file, [[associatedMedia]] is used on the overarching [[HyperTocEntry]]; if the content has been split into multiple files, they can be referenced using [[associatedMedia]] on each [[HyperTocEntry]].'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A HyperToEntry is an item within a [[HyperToc]], which represents a hypertext table of contents for complex media objects, such as [[VideoObject]], [[AudioObject]]. The media object itself is indicated using [[associatedMedia]]. Each section of interest within that content can be described with a [[HyperTocEntry]], with associated [[startOffset]] and [[endOffset]]. When several entries are all from the same file, [[associatedMedia]] is used on the overarching [[HyperTocEntry]]; if the content has been split into multiple files, they can be referenced using [[associatedMedia]] on each [[HyperTocEntry]].'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'tocContinuation' => ['HyperTocEntry'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'utterances' => ['Text'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'tocContinuation' => ['HyperTocEntry'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'utterances' => ['Text'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'tocContinuation' => 'A [[HyperTocEntry]] can have a [[tocContinuation]] indicated, which is another [[HyperTocEntry]] that would be the default next item to play or render.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'utterances' => 'Text of an utterances (spoken words, lyrics etc.) that occurs at a certain section of a media object, represented as a [[HyperTocEntry]].', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'tocContinuation' => 'A [[HyperTocEntry]] can have a [[tocContinuation]] indicated, which is another [[HyperTocEntry]] that would be the default next item to play or render.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'utterances' => 'Text of an utterances (spoken words, lyrics etc.) that occurs at a certain section of a media object, represented as a [[HyperTocEntry]].', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/IOSPlatform.php b/src/models/jsonld/IOSPlatform.php index 8c988cadc..c12893e32 100644 --- a/src/models/jsonld/IOSPlatform.php +++ b/src/models/jsonld/IOSPlatform.php @@ -23,126 +23,126 @@ */ class IOSPlatform extends MetaJsonLd implements IOSPlatformInterface, DigitalPlatformEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use IOSPlatformTrait; - use DigitalPlatformEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'IOSPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/IOSPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the broad notion of iOS-based operating systems.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use IOSPlatformTrait; + use DigitalPlatformEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'IOSPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/IOSPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the broad notion of iOS-based operating systems.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/IceCreamShop.php b/src/models/jsonld/IceCreamShop.php index fb6d4bdd5..44eba2ab4 100644 --- a/src/models/jsonld/IceCreamShop.php +++ b/src/models/jsonld/IceCreamShop.php @@ -23,341 +23,341 @@ */ class IceCreamShop extends MetaJsonLd implements IceCreamShopInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use IceCreamShopTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use IceCreamShopTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'IceCreamShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'IceCreamShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/IceCreamShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/IceCreamShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An ice cream shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An ice cream shop.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/IgnoreAction.php b/src/models/jsonld/IgnoreAction.php index ab35a0a7b..a0ac44f01 100644 --- a/src/models/jsonld/IgnoreAction.php +++ b/src/models/jsonld/IgnoreAction.php @@ -24,147 +24,147 @@ */ class IgnoreAction extends MetaJsonLd implements IgnoreActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use IgnoreActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'IgnoreAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/IgnoreAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of intentionally disregarding the object. An agent ignores an object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use IgnoreActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'IgnoreAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/IgnoreAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of intentionally disregarding the object. An agent ignores an object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ImageGallery.php b/src/models/jsonld/ImageGallery.php index 32225ad69..0acd397fd 100644 --- a/src/models/jsonld/ImageGallery.php +++ b/src/models/jsonld/ImageGallery.php @@ -23,369 +23,369 @@ */ class ImageGallery extends MetaJsonLd implements ImageGalleryInterface, MediaGalleryInterface, CollectionPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use ImageGalleryTrait; - use MediaGalleryTrait; - use CollectionPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use ImageGalleryTrait; + use MediaGalleryTrait; + use CollectionPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ImageGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ImageGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ImageGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ImageGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaGallery'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaGallery'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Image gallery page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Image gallery page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ImageObject.php b/src/models/jsonld/ImageObject.php index 4df56b8fc..8b034f1e5 100644 --- a/src/models/jsonld/ImageObject.php +++ b/src/models/jsonld/ImageObject.php @@ -23,393 +23,393 @@ */ class ImageObject extends MetaJsonLd implements ImageObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use ImageObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use ImageObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ImageObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ImageObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ImageObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ImageObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An image file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An image file.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'exifData' => ['Text', 'PropertyValue'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'representativeOfPage' => ['Boolean'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnail' => ['ImageObject'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'exifData' => ['Text', 'PropertyValue'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'representativeOfPage' => ['Boolean'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnail' => ['ImageObject'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'exifData' => 'exif data for this object.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'representativeOfPage' => 'Indicates whether this image is representative of the content of the page.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnail' => 'Thumbnail image for an image or video.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'exifData' => 'exif data for this object.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'representativeOfPage' => 'Indicates whether this image is representative of the content of the page.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnail' => 'Thumbnail image for an image or video.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ImageObjectSnapshot.php b/src/models/jsonld/ImageObjectSnapshot.php index 8686d8ce3..c06583e70 100644 --- a/src/models/jsonld/ImageObjectSnapshot.php +++ b/src/models/jsonld/ImageObjectSnapshot.php @@ -28,394 +28,394 @@ */ class ImageObjectSnapshot extends MetaJsonLd implements ImageObjectSnapshotInterface, ImageObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use ImageObjectSnapshotTrait; - use ImageObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use ImageObjectSnapshotTrait; + use ImageObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ImageObjectSnapshot'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ImageObjectSnapshot'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ImageObjectSnapshot'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ImageObjectSnapshot'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ImageObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ImageObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific and exact (byte-for-byte) version of an [[ImageObject]]. Two byte-for-byte identical files, for the purposes of this type, considered identical. If they have different embedded metadata (e.g. XMP, EXIF) the files will differ. Different external facts about the files, e.g. creator or dateCreated that aren\'t represented in their actual content, do not affect this notion of identity.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific and exact (byte-for-byte) version of an [[ImageObject]]. Two byte-for-byte identical files, for the purposes of this type, considered identical. If they have different embedded metadata (e.g. XMP, EXIF) the files will differ. Different external facts about the files, e.g. creator or dateCreated that aren\'t represented in their actual content, do not affect this notion of identity.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'exifData' => ['Text', 'PropertyValue'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'representativeOfPage' => ['Boolean'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnail' => ['ImageObject'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'exifData' => ['Text', 'PropertyValue'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'representativeOfPage' => ['Boolean'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnail' => ['ImageObject'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'exifData' => 'exif data for this object.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'representativeOfPage' => 'Indicates whether this image is representative of the content of the page.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnail' => 'Thumbnail image for an image or video.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'exifData' => 'exif data for this object.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'representativeOfPage' => 'Indicates whether this image is representative of the content of the page.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnail' => 'Thumbnail image for an image or video.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ImagingTest.php b/src/models/jsonld/ImagingTest.php index 3f1d4e7a7..91c06a45b 100644 --- a/src/models/jsonld/ImagingTest.php +++ b/src/models/jsonld/ImagingTest.php @@ -23,151 +23,151 @@ */ class ImagingTest extends MetaJsonLd implements ImagingTestInterface, MedicalTestInterface, MedicalEntityInterface, ThingInterface { - use ImagingTestTrait; - use MedicalTestTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ImagingTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ImagingTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any medical imaging modality typically used for diagnostic purposes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'affectedBy' => ['Drug'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'imagingTechnique' => ['MedicalImagingTechnique'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'normalRange' => ['Text', 'MedicalEnumeration'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'signDetected' => ['MedicalSign'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'usedToDiagnose' => ['MedicalCondition'], - 'usesDevice' => ['MedicalDevice'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'affectedBy' => 'Drugs that affect the test\'s results.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'imagingTechnique' => 'Imaging technique used.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'signDetected' => 'A sign detected by the test.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'usedToDiagnose' => 'A condition the test is used to diagnose.', - 'usesDevice' => 'Device used to perform the test.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ImagingTestTrait; + use MedicalTestTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ImagingTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ImagingTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any medical imaging modality typically used for diagnostic purposes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'affectedBy' => ['Drug'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'imagingTechnique' => ['MedicalImagingTechnique'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'normalRange' => ['Text', 'MedicalEnumeration'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'signDetected' => ['MedicalSign'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'usedToDiagnose' => ['MedicalCondition'], + 'usesDevice' => ['MedicalDevice'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'affectedBy' => 'Drugs that affect the test\'s results.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'imagingTechnique' => 'Imaging technique used.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'signDetected' => 'A sign detected by the test.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'usedToDiagnose' => 'A condition the test is used to diagnose.', + 'usesDevice' => 'Device used to perform the test.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InForce.php b/src/models/jsonld/InForce.php index a056a107a..bfff044e1 100644 --- a/src/models/jsonld/InForce.php +++ b/src/models/jsonld/InForce.php @@ -23,127 +23,127 @@ */ class InForce extends MetaJsonLd implements InForceInterface, LegalForceStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use InForceTrait; - use LegalForceStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InForce'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InForce'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalForceStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that a legislation is in force.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InForceTrait; + use LegalForceStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InForce'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InForce'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalForceStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that a legislation is in force.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InStock.php b/src/models/jsonld/InStock.php index 92835007d..463811146 100644 --- a/src/models/jsonld/InStock.php +++ b/src/models/jsonld/InStock.php @@ -23,126 +23,126 @@ */ class InStock extends MetaJsonLd implements InStockInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use InStockTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InStock'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InStock'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is in stock.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InStockTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InStock'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InStock'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is in stock.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InStoreOnly.php b/src/models/jsonld/InStoreOnly.php index 545fd1620..54e1f0994 100644 --- a/src/models/jsonld/InStoreOnly.php +++ b/src/models/jsonld/InStoreOnly.php @@ -23,126 +23,126 @@ */ class InStoreOnly extends MetaJsonLd implements InStoreOnlyInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use InStoreOnlyTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InStoreOnly'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InStoreOnly'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is available only at physical locations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InStoreOnlyTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InStoreOnly'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InStoreOnly'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is available only at physical locations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/IndividualProduct.php b/src/models/jsonld/IndividualProduct.php index ae6456b88..54a4e1366 100644 --- a/src/models/jsonld/IndividualProduct.php +++ b/src/models/jsonld/IndividualProduct.php @@ -24,234 +24,234 @@ */ class IndividualProduct extends MetaJsonLd implements IndividualProductInterface, ProductInterface, ThingInterface { - use IndividualProductTrait; - use ProductTrait; - use ThingTrait; + use IndividualProductTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'IndividualProduct'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'IndividualProduct'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/IndividualProduct'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/IndividualProduct'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A single, identifiable product instance (e.g. a laptop with a particular serial number).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A single, identifiable product instance (e.g. a laptop with a particular serial number).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'serialNumber' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'serialNumber' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Infectious.php b/src/models/jsonld/Infectious.php index f2f846291..e762f68f9 100644 --- a/src/models/jsonld/Infectious.php +++ b/src/models/jsonld/Infectious.php @@ -24,128 +24,128 @@ */ class Infectious extends MetaJsonLd implements InfectiousInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use InfectiousTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Infectious'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Infectious'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Something in medical science that pertains to infectious diseases, i.e. caused by bacterial, viral, fungal or parasitic infections.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InfectiousTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Infectious'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Infectious'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Something in medical science that pertains to infectious diseases, i.e. caused by bacterial, viral, fungal or parasitic infections.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InfectiousAgentClass.php b/src/models/jsonld/InfectiousAgentClass.php index 115f9b123..01c217fe0 100644 --- a/src/models/jsonld/InfectiousAgentClass.php +++ b/src/models/jsonld/InfectiousAgentClass.php @@ -24,126 +24,126 @@ */ class InfectiousAgentClass extends MetaJsonLd implements InfectiousAgentClassInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use InfectiousAgentClassTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InfectiousAgentClass'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Classes of agents or pathogens that transmit infectious diseases. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InfectiousAgentClassTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InfectiousAgentClass'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Classes of agents or pathogens that transmit infectious diseases. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InfectiousDisease.php b/src/models/jsonld/InfectiousDisease.php index 93a911d42..e4fd20470 100644 --- a/src/models/jsonld/InfectiousDisease.php +++ b/src/models/jsonld/InfectiousDisease.php @@ -27,177 +27,177 @@ */ class InfectiousDisease extends MetaJsonLd implements InfectiousDiseaseInterface, MedicalConditionInterface, MedicalEntityInterface, ThingInterface { - use InfectiousDiseaseTrait; - use MedicalConditionTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InfectiousDisease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InfectiousDisease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An infectious disease is a clinically evident human disease resulting from the presence of pathogenic microbial agents, like pathogenic viruses, pathogenic bacteria, fungi, protozoa, multicellular parasites, and prions. To be considered an infectious disease, such pathogens are known to be able to cause this disease.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'differentialDiagnosis' => ['DDxElement'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'epidemiology' => ['Text'], - 'expectedPrognosis' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'infectiousAgent' => ['Text'], - 'infectiousAgentClass' => ['InfectiousAgentClass'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'naturalProgression' => ['Text'], - 'pathophysiology' => ['Text'], - 'possibleComplication' => ['Text'], - 'possibleTreatment' => ['MedicalTherapy'], - 'potentialAction' => ['Action'], - 'primaryPrevention' => ['MedicalTherapy'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'riskFactor' => ['MedicalRiskFactor'], - 'sameAs' => ['URL'], - 'secondaryPrevention' => ['MedicalTherapy'], - 'signOrSymptom' => ['MedicalSignOrSymptom'], - 'stage' => ['MedicalConditionStage'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'transmissionMethod' => ['Text'], - 'typicalTest' => ['MedicalTest'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'infectiousAgent' => 'The actual infectious agent, such as a specific bacterium.', - 'infectiousAgentClass' => 'The class of infectious agent (bacteria, prion, etc.) that causes the disease.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', - 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', - '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.', - 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', - 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', - 'stage' => 'The stage of the condition, if applicable.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'transmissionMethod' => 'How the disease spreads, either as a route or vector, for example \'direct contact\', \'Aedes aegypti\', etc.', - 'typicalTest' => 'A medical test typically performed given this condition.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InfectiousDiseaseTrait; + use MedicalConditionTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InfectiousDisease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InfectiousDisease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An infectious disease is a clinically evident human disease resulting from the presence of pathogenic microbial agents, like pathogenic viruses, pathogenic bacteria, fungi, protozoa, multicellular parasites, and prions. To be considered an infectious disease, such pathogens are known to be able to cause this disease.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'differentialDiagnosis' => ['DDxElement'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'epidemiology' => ['Text'], + 'expectedPrognosis' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'infectiousAgent' => ['Text'], + 'infectiousAgentClass' => ['InfectiousAgentClass'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'naturalProgression' => ['Text'], + 'pathophysiology' => ['Text'], + 'possibleComplication' => ['Text'], + 'possibleTreatment' => ['MedicalTherapy'], + 'potentialAction' => ['Action'], + 'primaryPrevention' => ['MedicalTherapy'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'riskFactor' => ['MedicalRiskFactor'], + 'sameAs' => ['URL'], + 'secondaryPrevention' => ['MedicalTherapy'], + 'signOrSymptom' => ['MedicalSignOrSymptom'], + 'stage' => ['MedicalConditionStage'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'transmissionMethod' => ['Text'], + 'typicalTest' => ['MedicalTest'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'infectiousAgent' => 'The actual infectious agent, such as a specific bacterium.', + 'infectiousAgentClass' => 'The class of infectious agent (bacteria, prion, etc.) that causes the disease.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', + 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', + '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.', + 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', + 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', + 'stage' => 'The stage of the condition, if applicable.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'transmissionMethod' => 'How the disease spreads, either as a route or vector, for example \'direct contact\', \'Aedes aegypti\', etc.', + 'typicalTest' => 'A medical test typically performed given this condition.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InformAction.php b/src/models/jsonld/InformAction.php index eb20982ec..f331fdb59 100644 --- a/src/models/jsonld/InformAction.php +++ b/src/models/jsonld/InformAction.php @@ -24,158 +24,158 @@ */ class InformAction extends MetaJsonLd implements InformActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use InformActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InformAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InformAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of notifying someone of information pertinent to them, with no expectation of a response.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InformActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InformAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InformAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of notifying someone of information pertinent to them, with no expectation of a response.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/IngredientsHealthAspect.php b/src/models/jsonld/IngredientsHealthAspect.php index e151a51a0..e03bffa01 100644 --- a/src/models/jsonld/IngredientsHealthAspect.php +++ b/src/models/jsonld/IngredientsHealthAspect.php @@ -23,126 +23,126 @@ */ class IngredientsHealthAspect extends MetaJsonLd implements IngredientsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use IngredientsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'IngredientsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/IngredientsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content discussing ingredients-related aspects of a health topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use IngredientsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'IngredientsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/IngredientsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content discussing ingredients-related aspects of a health topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InsertAction.php b/src/models/jsonld/InsertAction.php index cc4ca073a..0ecb5107a 100644 --- a/src/models/jsonld/InsertAction.php +++ b/src/models/jsonld/InsertAction.php @@ -23,154 +23,154 @@ */ class InsertAction extends MetaJsonLd implements InsertActionInterface, AddActionInterface, UpdateActionInterface, ActionInterface, ThingInterface { - use InsertActionTrait; - use AddActionTrait; - use UpdateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InsertAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InsertAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AddAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of adding at a specific location in an ordered collection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'collection' => ['Thing'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'targetCollection' => ['Thing'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'collection' => 'A sub property of object. The collection target of the action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'targetCollection' => 'A sub property of object. The collection target of the action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InsertActionTrait; + use AddActionTrait; + use UpdateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InsertAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InsertAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AddAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of adding at a specific location in an ordered collection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'collection' => ['Thing'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'targetCollection' => ['Thing'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'collection' => 'A sub property of object. The collection target of the action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'targetCollection' => 'A sub property of object. The collection target of the action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InstallAction.php b/src/models/jsonld/InstallAction.php index 7346105dc..f37497a24 100644 --- a/src/models/jsonld/InstallAction.php +++ b/src/models/jsonld/InstallAction.php @@ -23,151 +23,151 @@ */ class InstallAction extends MetaJsonLd implements InstallActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use InstallActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InstallAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InstallAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of installing an application.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InstallActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InstallAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InstallAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of installing an application.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Installment.php b/src/models/jsonld/Installment.php index 21e67aad8..b15c424db 100644 --- a/src/models/jsonld/Installment.php +++ b/src/models/jsonld/Installment.php @@ -24,126 +24,126 @@ */ class Installment extends MetaJsonLd implements InstallmentInterface, PriceComponentTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use InstallmentTrait; - use PriceComponentTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Installment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Installment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the installment pricing component of the total price for an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InstallmentTrait; + use PriceComponentTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Installment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Installment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the installment pricing component of the total price for an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InsuranceAgency.php b/src/models/jsonld/InsuranceAgency.php index 656f809e2..850a10560 100644 --- a/src/models/jsonld/InsuranceAgency.php +++ b/src/models/jsonld/InsuranceAgency.php @@ -23,333 +23,333 @@ */ class InsuranceAgency extends MetaJsonLd implements InsuranceAgencyInterface, FinancialServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use InsuranceAgencyTrait; - use FinancialServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use InsuranceAgencyTrait; + use FinancialServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InsuranceAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InsuranceAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InsuranceAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InsuranceAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An Insurance agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An Insurance agency.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Intangible.php b/src/models/jsonld/Intangible.php index e1934ea36..a291e612e 100644 --- a/src/models/jsonld/Intangible.php +++ b/src/models/jsonld/Intangible.php @@ -24,121 +24,121 @@ */ class Intangible extends MetaJsonLd implements IntangibleInterface, ThingInterface { - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Intangible'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Intangible'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A utility class that serves as the umbrella for a number of \'intangible\' things such as quantities, structured values, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Intangible'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Intangible'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A utility class that serves as the umbrella for a number of \'intangible\' things such as quantities, structured values, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Integer.php b/src/models/jsonld/Integer.php index 1a12cc2e9..5b4783ba7 100644 --- a/src/models/jsonld/Integer.php +++ b/src/models/jsonld/Integer.php @@ -23,99 +23,99 @@ */ class Integer extends MetaJsonLd implements IntegerInterface, NumberInterface { - use IntegerTrait; - use NumberTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Integer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Integer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Number'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data type: Integer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use IntegerTrait; + use NumberTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Integer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Integer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Number'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data type: Integer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InteractAction.php b/src/models/jsonld/InteractAction.php index 74177b581..c5a26d16c 100644 --- a/src/models/jsonld/InteractAction.php +++ b/src/models/jsonld/InteractAction.php @@ -23,146 +23,146 @@ */ class InteractAction extends MetaJsonLd implements InteractActionInterface, ActionInterface, ThingInterface { - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InteractAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InteractAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of interacting with another person or organization.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InteractAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InteractAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of interacting with another person or organization.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InteractionCounter.php b/src/models/jsonld/InteractionCounter.php index 534324fdf..3ca8e29fc 100644 --- a/src/models/jsonld/InteractionCounter.php +++ b/src/models/jsonld/InteractionCounter.php @@ -25,135 +25,135 @@ */ class InteractionCounter extends MetaJsonLd implements InteractionCounterInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use InteractionCounterTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InteractionCounter'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InteractionCounter'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A summary of how users have interacted with this CreativeWork. In most cases, authors will use a subtype to specify the specific type of interaction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionService' => ['WebSite', 'SoftwareApplication'], - 'interactionType' => ['Action'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'userInteractionCount' => ['Integer'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionService' => 'The WebSite or SoftwareApplication where the interactions took place.', - 'interactionType' => 'The Action representing the type of interaction. For up votes, +1s, etc. use [[LikeAction]]. For down votes use [[DislikeAction]]. Otherwise, use the most specific Action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'userInteractionCount' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InteractionCounterTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InteractionCounter'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InteractionCounter'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A summary of how users have interacted with this CreativeWork. In most cases, authors will use a subtype to specify the specific type of interaction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionService' => ['WebSite', 'SoftwareApplication'], + 'interactionType' => ['Action'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'userInteractionCount' => ['Integer'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionService' => 'The WebSite or SoftwareApplication where the interactions took place.', + 'interactionType' => 'The Action representing the type of interaction. For up votes, +1s, etc. use [[LikeAction]]. For down votes use [[DislikeAction]]. Otherwise, use the most specific Action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'userInteractionCount' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InternationalTrial.php b/src/models/jsonld/InternationalTrial.php index 241027f58..a22406e66 100644 --- a/src/models/jsonld/InternationalTrial.php +++ b/src/models/jsonld/InternationalTrial.php @@ -23,127 +23,127 @@ */ class InternationalTrial extends MetaJsonLd implements InternationalTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use InternationalTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InternationalTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InternationalTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An international trial.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InternationalTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InternationalTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InternationalTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An international trial.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InternetCafe.php b/src/models/jsonld/InternetCafe.php index f17a9e259..556e4da9b 100644 --- a/src/models/jsonld/InternetCafe.php +++ b/src/models/jsonld/InternetCafe.php @@ -23,330 +23,330 @@ */ class InternetCafe extends MetaJsonLd implements InternetCafeInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use InternetCafeTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use InternetCafeTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InternetCafe'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InternetCafe'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InternetCafe'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InternetCafe'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An internet cafe.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An internet cafe.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/InvestmentFund.php b/src/models/jsonld/InvestmentFund.php index e315ec228..99ca91992 100644 --- a/src/models/jsonld/InvestmentFund.php +++ b/src/models/jsonld/InvestmentFund.php @@ -25,181 +25,181 @@ */ class InvestmentFund extends MetaJsonLd implements InvestmentFundInterface, InvestmentOrDepositInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use InvestmentFundTrait; - use InvestmentOrDepositTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InvestmentFund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InvestmentFund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InvestmentOrDeposit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A company or fund that gathers capital from a number of investors to create a pool of money that is then re-invested into stocks, bonds and other assets.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InvestmentFundTrait; + use InvestmentOrDepositTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InvestmentFund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InvestmentFund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InvestmentOrDeposit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A company or fund that gathers capital from a number of investors to create a pool of money that is then re-invested into stocks, bonds and other assets.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InvestmentOrDeposit.php b/src/models/jsonld/InvestmentOrDeposit.php index d1d7a284d..2e67bdd11 100644 --- a/src/models/jsonld/InvestmentOrDeposit.php +++ b/src/models/jsonld/InvestmentOrDeposit.php @@ -25,180 +25,180 @@ */ class InvestmentOrDeposit extends MetaJsonLd implements InvestmentOrDepositInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use InvestmentOrDepositTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InvestmentOrDeposit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InvestmentOrDeposit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of financial product that typically requires the client to transfer funds to a financial service in return for potential beneficial financial return.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InvestmentOrDepositTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InvestmentOrDeposit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InvestmentOrDeposit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of financial product that typically requires the client to transfer funds to a financial service in return for potential beneficial financial return.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InviteAction.php b/src/models/jsonld/InviteAction.php index 5c4067a12..1da780252 100644 --- a/src/models/jsonld/InviteAction.php +++ b/src/models/jsonld/InviteAction.php @@ -23,158 +23,158 @@ */ class InviteAction extends MetaJsonLd implements InviteActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use InviteActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InviteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InviteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of asking someone to attend an event. Reciprocal of RsvpAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InviteActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InviteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InviteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of asking someone to attend an event. Reciprocal of RsvpAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Invoice.php b/src/models/jsonld/Invoice.php index e3441811e..8576d6860 100644 --- a/src/models/jsonld/Invoice.php +++ b/src/models/jsonld/Invoice.php @@ -23,154 +23,154 @@ */ class Invoice extends MetaJsonLd implements InvoiceInterface, IntangibleInterface, ThingInterface { - use InvoiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Invoice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Invoice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A statement of the money due for goods or services; a bill.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accountId' => ['Text'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'billingPeriod' => ['Duration'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'confirmationNumber' => ['Text'], - 'customer' => ['Organization', 'Person'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'minimumPaymentDue' => ['MonetaryAmount', 'PriceSpecification'], - 'name' => ['Text'], - 'paymentDue' => ['DateTime'], - 'paymentDueDate' => ['Date', 'DateTime'], - 'paymentMethod' => ['PaymentMethod'], - 'paymentMethodId' => ['Text'], - 'paymentStatus' => ['Text', 'PaymentStatusType'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'referencesOrder' => ['Order'], - 'sameAs' => ['URL'], - 'scheduledPaymentDate' => ['Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPaymentDue' => ['MonetaryAmount', 'PriceSpecification'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accountId' => 'The identifier for the account the payment will be applied to.', - '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.', - 'alternateName' => 'An alias for the item.', - 'billingPeriod' => 'The time interval used to compute the invoice.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'confirmationNumber' => 'A number that confirms the given order or payment has been received.', - 'customer' => 'Party placing the order or paying the invoice.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'minimumPaymentDue' => 'The minimum payment required at this time.', - 'name' => 'The name of the item.', - 'paymentDue' => 'The date that payment is due.', - 'paymentDueDate' => 'The date that payment is due.', - 'paymentMethod' => 'The name of the credit card or other method of payment for the order.', - 'paymentMethodId' => 'An identifier for the method of payment used (e.g. the last 4 digits of the credit card).', - 'paymentStatus' => 'The status of payment; whether the invoice has been paid or not.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'referencesOrder' => 'The Order(s) related to this Invoice. One or more Orders may be combined into a single Invoice.', - '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.', - 'scheduledPaymentDate' => 'The date the invoice is scheduled to be paid.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPaymentDue' => 'The total amount due.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InvoiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Invoice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Invoice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A statement of the money due for goods or services; a bill.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accountId' => ['Text'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'billingPeriod' => ['Duration'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'confirmationNumber' => ['Text'], + 'customer' => ['Organization', 'Person'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'minimumPaymentDue' => ['MonetaryAmount', 'PriceSpecification'], + 'name' => ['Text'], + 'paymentDue' => ['DateTime'], + 'paymentDueDate' => ['Date', 'DateTime'], + 'paymentMethod' => ['PaymentMethod'], + 'paymentMethodId' => ['Text'], + 'paymentStatus' => ['Text', 'PaymentStatusType'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'referencesOrder' => ['Order'], + 'sameAs' => ['URL'], + 'scheduledPaymentDate' => ['Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPaymentDue' => ['MonetaryAmount', 'PriceSpecification'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accountId' => 'The identifier for the account the payment will be applied to.', + '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.', + 'alternateName' => 'An alias for the item.', + 'billingPeriod' => 'The time interval used to compute the invoice.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'confirmationNumber' => 'A number that confirms the given order or payment has been received.', + 'customer' => 'Party placing the order or paying the invoice.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'minimumPaymentDue' => 'The minimum payment required at this time.', + 'name' => 'The name of the item.', + 'paymentDue' => 'The date that payment is due.', + 'paymentDueDate' => 'The date that payment is due.', + 'paymentMethod' => 'The name of the credit card or other method of payment for the order.', + 'paymentMethodId' => 'An identifier for the method of payment used (e.g. the last 4 digits of the credit card).', + 'paymentStatus' => 'The status of payment; whether the invoice has been paid or not.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'referencesOrder' => 'The Order(s) related to this Invoice. One or more Orders may be combined into a single Invoice.', + '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.', + 'scheduledPaymentDate' => 'The date the invoice is scheduled to be paid.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPaymentDue' => 'The total amount due.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/InvoicePrice.php b/src/models/jsonld/InvoicePrice.php index ca122b9f4..76e14ac12 100644 --- a/src/models/jsonld/InvoicePrice.php +++ b/src/models/jsonld/InvoicePrice.php @@ -23,126 +23,126 @@ */ class InvoicePrice extends MetaJsonLd implements InvoicePriceInterface, PriceTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use InvoicePriceTrait; - use PriceTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'InvoicePrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/InvoicePrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the invoice price of an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use InvoicePriceTrait; + use PriceTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'InvoicePrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/InvoicePrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the invoice price of an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ItemAvailability.php b/src/models/jsonld/ItemAvailability.php index 23bb820ea..371333fb8 100644 --- a/src/models/jsonld/ItemAvailability.php +++ b/src/models/jsonld/ItemAvailability.php @@ -23,125 +23,125 @@ */ class ItemAvailability extends MetaJsonLd implements ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ItemAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ItemAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A list of possible product availability options.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ItemAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ItemAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A list of possible product availability options.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ItemList.php b/src/models/jsonld/ItemList.php index 2275b9bf3..f8d02250a 100644 --- a/src/models/jsonld/ItemList.php +++ b/src/models/jsonld/ItemList.php @@ -25,128 +25,128 @@ */ class ItemList extends MetaJsonLd implements ItemListInterface, IntangibleInterface, ThingInterface { - use ItemListTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ItemList'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ItemList'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A list of items of any sort—for example, Top 10 Movies About Weathermen, or Top 100 Party Songs. Not to be confused with HTML lists, which are often used only for formatting.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itemListElement' => ['ListItem', 'Text', 'Thing'], - 'itemListOrder' => ['ItemListOrderType', 'Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numberOfItems' => ['Integer'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', - 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', - '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.', - 'name' => 'The name of the item.', - 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ItemListTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ItemList'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ItemList'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A list of items of any sort—for example, Top 10 Movies About Weathermen, or Top 100 Party Songs. Not to be confused with HTML lists, which are often used only for formatting.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itemListElement' => ['ListItem', 'Text', 'Thing'], + 'itemListOrder' => ['ItemListOrderType', 'Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numberOfItems' => ['Integer'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', + 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', + '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.', + 'name' => 'The name of the item.', + 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ItemListOrderAscending.php b/src/models/jsonld/ItemListOrderAscending.php index dedec5f3a..601a4386d 100644 --- a/src/models/jsonld/ItemListOrderAscending.php +++ b/src/models/jsonld/ItemListOrderAscending.php @@ -23,126 +23,126 @@ */ class ItemListOrderAscending extends MetaJsonLd implements ItemListOrderAscendingInterface, ItemListOrderTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ItemListOrderAscendingTrait; - use ItemListOrderTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ItemListOrderAscending'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ItemListOrderAscending'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemListOrderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An ItemList ordered with lower values listed first.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ItemListOrderAscendingTrait; + use ItemListOrderTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ItemListOrderAscending'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ItemListOrderAscending'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemListOrderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An ItemList ordered with lower values listed first.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ItemListOrderDescending.php b/src/models/jsonld/ItemListOrderDescending.php index 3cd09ed84..9fc9515cf 100644 --- a/src/models/jsonld/ItemListOrderDescending.php +++ b/src/models/jsonld/ItemListOrderDescending.php @@ -23,126 +23,126 @@ */ class ItemListOrderDescending extends MetaJsonLd implements ItemListOrderDescendingInterface, ItemListOrderTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ItemListOrderDescendingTrait; - use ItemListOrderTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ItemListOrderDescending'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ItemListOrderDescending'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemListOrderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An ItemList ordered with higher values listed first.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ItemListOrderDescendingTrait; + use ItemListOrderTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ItemListOrderDescending'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ItemListOrderDescending'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemListOrderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An ItemList ordered with higher values listed first.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ItemListOrderType.php b/src/models/jsonld/ItemListOrderType.php index 29b1f05cb..c9aac52e7 100644 --- a/src/models/jsonld/ItemListOrderType.php +++ b/src/models/jsonld/ItemListOrderType.php @@ -24,125 +24,125 @@ */ class ItemListOrderType extends MetaJsonLd implements ItemListOrderTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ItemListOrderTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ItemListOrderType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ItemListOrderType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerated for values for itemListOrder for indicating how an ordered ItemList is organized.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ItemListOrderTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ItemListOrderType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ItemListOrderType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerated for values for itemListOrder for indicating how an ordered ItemList is organized.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ItemListUnordered.php b/src/models/jsonld/ItemListUnordered.php index e893c8a9a..7cd1615c1 100644 --- a/src/models/jsonld/ItemListUnordered.php +++ b/src/models/jsonld/ItemListUnordered.php @@ -23,126 +23,126 @@ */ class ItemListUnordered extends MetaJsonLd implements ItemListUnorderedInterface, ItemListOrderTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ItemListUnorderedTrait; - use ItemListOrderTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ItemListUnordered'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ItemListUnordered'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemListOrderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An ItemList ordered with no explicit order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ItemListUnorderedTrait; + use ItemListOrderTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ItemListUnordered'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ItemListUnordered'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemListOrderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An ItemList ordered with no explicit order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ItemPage.php b/src/models/jsonld/ItemPage.php index ee41064c1..a7a891ab5 100644 --- a/src/models/jsonld/ItemPage.php +++ b/src/models/jsonld/ItemPage.php @@ -23,367 +23,367 @@ */ class ItemPage extends MetaJsonLd implements ItemPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use ItemPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use ItemPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ItemPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ItemPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ItemPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ItemPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A page devoted to a single item, such as a particular product or hotel.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A page devoted to a single item, such as a particular product or hotel.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/JewelryStore.php b/src/models/jsonld/JewelryStore.php index 0c78421e8..fddaa7dc8 100644 --- a/src/models/jsonld/JewelryStore.php +++ b/src/models/jsonld/JewelryStore.php @@ -23,331 +23,331 @@ */ class JewelryStore extends MetaJsonLd implements JewelryStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use JewelryStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use JewelryStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'JewelryStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'JewelryStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/JewelryStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/JewelryStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A jewelry store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A jewelry store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/JobPosting.php b/src/models/jsonld/JobPosting.php index 821cad0bb..fe56fc5d6 100644 --- a/src/models/jsonld/JobPosting.php +++ b/src/models/jsonld/JobPosting.php @@ -23,196 +23,196 @@ */ class JobPosting extends MetaJsonLd implements JobPostingInterface, IntangibleInterface, ThingInterface { - use JobPostingTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'JobPosting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/JobPosting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A listing that describes a job opening in a certain organization.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'applicantLocationRequirements' => ['AdministrativeArea'], - 'applicationContact' => ['ContactPoint'], - 'baseSalary' => ['MonetaryAmount', 'Number', 'PriceSpecification'], - 'benefits' => ['Text'], - 'datePosted' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'directApply' => ['Boolean'], - 'disambiguatingDescription' => ['Text'], - 'educationRequirements' => ['EducationalOccupationalCredential', 'Text'], - 'eligibilityToWorkRequirement' => ['Text'], - 'employerOverview' => ['Text'], - 'employmentType' => ['Text'], - 'employmentUnit' => ['Organization'], - 'estimatedSalary' => ['MonetaryAmount', 'Number', 'MonetaryAmountDistribution'], - 'experienceInPlaceOfEducation' => ['Boolean'], - 'experienceRequirements' => ['OccupationalExperienceRequirements', 'Text'], - 'hiringOrganization' => ['Organization', 'Person'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'incentiveCompensation' => ['Text'], - 'incentives' => ['Text'], - 'industry' => ['DefinedTerm', 'Text'], - 'jobBenefits' => ['Text'], - 'jobImmediateStart' => ['Boolean'], - 'jobLocation' => ['Place'], - 'jobLocationType' => ['Text'], - 'jobStartDate' => ['Text', 'Date'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'occupationalCategory' => ['Text', 'CategoryCode'], - 'physicalRequirement' => ['DefinedTerm', 'Text', 'URL'], - 'potentialAction' => ['Action'], - 'qualifications' => ['EducationalOccupationalCredential', 'Text'], - 'relevantOccupation' => ['Occupation'], - 'responsibilities' => ['Text'], - 'salaryCurrency' => ['Text'], - 'sameAs' => ['URL'], - 'securityClearanceRequirement' => ['Text', 'URL'], - 'sensoryRequirement' => ['URL', 'DefinedTerm', 'Text'], - 'skills' => ['Text', 'DefinedTerm'], - 'specialCommitments' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'title' => ['Text'], - 'totalJobOpenings' => ['Integer'], - 'url' => ['URL'], - 'validThrough' => ['Date', 'DateTime'], - 'workHours' => ['Text'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'applicantLocationRequirements' => 'The location(s) applicants can apply from. This is usually used for telecommuting jobs where the applicant does not need to be in a physical office. Note: This should not be used for citizenship or work visa requirements.', - 'applicationContact' => 'Contact details for further information relevant to this job posting.', - 'baseSalary' => 'The base salary of the job or of an employee in an EmployeeRole.', - 'benefits' => 'Description of benefits associated with the job.', - 'datePosted' => 'Publication date of an online listing.', - 'description' => 'A description of the item.', - 'directApply' => 'Indicates whether an [[url]] that is associated with a [[JobPosting]] enables direct application for the job, via the posting website. A job posting is considered to have directApply of [[True]] if an application process for the specified job can be directly initiated via the url(s) given (noting that e.g. multiple internet domains might nevertheless be involved at an implementation level). A value of [[False]] is appropriate if there is no clear path to applying directly online for the specified job, navigating directly from the JobPosting url(s) supplied.', - '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.', - 'educationRequirements' => 'Educational background needed for the position or Occupation.', - 'eligibilityToWorkRequirement' => 'The legal requirements such as citizenship, visa and other documentation required for an applicant to this job.', - 'employerOverview' => 'A description of the employer, career opportunities and work environment for this position.', - 'employmentType' => 'Type of employment (e.g. full-time, part-time, contract, temporary, seasonal, internship).', - 'employmentUnit' => 'Indicates the department, unit and/or facility where the employee reports and/or in which the job is to be performed.', - 'estimatedSalary' => 'An estimated salary for a job posting or occupation, based on a variety of variables including, but not limited to industry, job title, and location. Estimated salaries are often computed by outside organizations rather than the hiring organization, who may not have committed to the estimated value.', - 'experienceInPlaceOfEducation' => 'Indicates whether a [[JobPosting]] will accept experience (as indicated by [[OccupationalExperienceRequirements]]) in place of its formal educational qualifications (as indicated by [[educationRequirements]]). If true, indicates that satisfying one of these requirements is sufficient.', - 'experienceRequirements' => 'Description of skills and experience needed for the position or Occupation.', - 'hiringOrganization' => 'Organization or Person offering the job position.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'incentiveCompensation' => 'Description of bonus and commission compensation aspects of the job.', - 'incentives' => 'Description of bonus and commission compensation aspects of the job.', - 'industry' => 'The industry associated with the job position.', - 'jobBenefits' => 'Description of benefits associated with the job.', - 'jobImmediateStart' => 'An indicator as to whether a position is available for an immediate start.', - 'jobLocation' => 'A (typically single) geographic location associated with the job position.', - 'jobLocationType' => 'A description of the job location (e.g. TELECOMMUTE for telecommute jobs).', - 'jobStartDate' => 'The date on which a successful applicant for this job would be expected to start work. Choose a specific date in the future or use the jobImmediateStart property to indicate the position is to be filled as soon as possible.', - '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.', - 'name' => 'The name of the item.', - 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', - 'physicalRequirement' => 'A description of the types of physical activity associated with the job. Defined terms such as those in O*net may be used, but note that there is no way to specify the level of ability as well as its nature when using a defined term.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'qualifications' => 'Specific qualifications required for this role or Occupation.', - 'relevantOccupation' => 'The Occupation for the JobPosting.', - 'responsibilities' => 'Responsibilities associated with this role or Occupation.', - 'salaryCurrency' => 'The currency (coded using [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)) used for the main salary information in this job posting or for this employee.', - '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.', - 'securityClearanceRequirement' => 'A description of any security clearance requirements of the job.', - 'sensoryRequirement' => 'A description of any sensory requirements and levels necessary to function on the job, including hearing and vision. Defined terms such as those in O*net may be used, but note that there is no way to specify the level of ability as well as its nature when using a defined term.', - 'skills' => 'A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is desired or required to fulfill this role or to work in this occupation.', - 'specialCommitments' => 'Any special commitments associated with this job posting. Valid entries include VeteranCommit, MilitarySpouseCommit, etc.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'title' => 'The title of the job.', - 'totalJobOpenings' => 'The number of positions open for this job posting. Use a positive integer. Do not use if the number of positions is unclear or not known.', - 'url' => 'URL of the item.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'workHours' => 'The typical working hours for this job (e.g. 1st shift, night shift, 8am-5pm).' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use JobPostingTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'JobPosting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/JobPosting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A listing that describes a job opening in a certain organization.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'applicantLocationRequirements' => ['AdministrativeArea'], + 'applicationContact' => ['ContactPoint'], + 'baseSalary' => ['MonetaryAmount', 'Number', 'PriceSpecification'], + 'benefits' => ['Text'], + 'datePosted' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'directApply' => ['Boolean'], + 'disambiguatingDescription' => ['Text'], + 'educationRequirements' => ['EducationalOccupationalCredential', 'Text'], + 'eligibilityToWorkRequirement' => ['Text'], + 'employerOverview' => ['Text'], + 'employmentType' => ['Text'], + 'employmentUnit' => ['Organization'], + 'estimatedSalary' => ['MonetaryAmount', 'Number', 'MonetaryAmountDistribution'], + 'experienceInPlaceOfEducation' => ['Boolean'], + 'experienceRequirements' => ['OccupationalExperienceRequirements', 'Text'], + 'hiringOrganization' => ['Organization', 'Person'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'incentiveCompensation' => ['Text'], + 'incentives' => ['Text'], + 'industry' => ['DefinedTerm', 'Text'], + 'jobBenefits' => ['Text'], + 'jobImmediateStart' => ['Boolean'], + 'jobLocation' => ['Place'], + 'jobLocationType' => ['Text'], + 'jobStartDate' => ['Text', 'Date'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'occupationalCategory' => ['Text', 'CategoryCode'], + 'physicalRequirement' => ['DefinedTerm', 'Text', 'URL'], + 'potentialAction' => ['Action'], + 'qualifications' => ['EducationalOccupationalCredential', 'Text'], + 'relevantOccupation' => ['Occupation'], + 'responsibilities' => ['Text'], + 'salaryCurrency' => ['Text'], + 'sameAs' => ['URL'], + 'securityClearanceRequirement' => ['Text', 'URL'], + 'sensoryRequirement' => ['URL', 'DefinedTerm', 'Text'], + 'skills' => ['Text', 'DefinedTerm'], + 'specialCommitments' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'title' => ['Text'], + 'totalJobOpenings' => ['Integer'], + 'url' => ['URL'], + 'validThrough' => ['Date', 'DateTime'], + 'workHours' => ['Text'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'applicantLocationRequirements' => 'The location(s) applicants can apply from. This is usually used for telecommuting jobs where the applicant does not need to be in a physical office. Note: This should not be used for citizenship or work visa requirements.', + 'applicationContact' => 'Contact details for further information relevant to this job posting.', + 'baseSalary' => 'The base salary of the job or of an employee in an EmployeeRole.', + 'benefits' => 'Description of benefits associated with the job.', + 'datePosted' => 'Publication date of an online listing.', + 'description' => 'A description of the item.', + 'directApply' => 'Indicates whether an [[url]] that is associated with a [[JobPosting]] enables direct application for the job, via the posting website. A job posting is considered to have directApply of [[True]] if an application process for the specified job can be directly initiated via the url(s) given (noting that e.g. multiple internet domains might nevertheless be involved at an implementation level). A value of [[False]] is appropriate if there is no clear path to applying directly online for the specified job, navigating directly from the JobPosting url(s) supplied.', + '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.', + 'educationRequirements' => 'Educational background needed for the position or Occupation.', + 'eligibilityToWorkRequirement' => 'The legal requirements such as citizenship, visa and other documentation required for an applicant to this job.', + 'employerOverview' => 'A description of the employer, career opportunities and work environment for this position.', + 'employmentType' => 'Type of employment (e.g. full-time, part-time, contract, temporary, seasonal, internship).', + 'employmentUnit' => 'Indicates the department, unit and/or facility where the employee reports and/or in which the job is to be performed.', + 'estimatedSalary' => 'An estimated salary for a job posting or occupation, based on a variety of variables including, but not limited to industry, job title, and location. Estimated salaries are often computed by outside organizations rather than the hiring organization, who may not have committed to the estimated value.', + 'experienceInPlaceOfEducation' => 'Indicates whether a [[JobPosting]] will accept experience (as indicated by [[OccupationalExperienceRequirements]]) in place of its formal educational qualifications (as indicated by [[educationRequirements]]). If true, indicates that satisfying one of these requirements is sufficient.', + 'experienceRequirements' => 'Description of skills and experience needed for the position or Occupation.', + 'hiringOrganization' => 'Organization or Person offering the job position.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'incentiveCompensation' => 'Description of bonus and commission compensation aspects of the job.', + 'incentives' => 'Description of bonus and commission compensation aspects of the job.', + 'industry' => 'The industry associated with the job position.', + 'jobBenefits' => 'Description of benefits associated with the job.', + 'jobImmediateStart' => 'An indicator as to whether a position is available for an immediate start.', + 'jobLocation' => 'A (typically single) geographic location associated with the job position.', + 'jobLocationType' => 'A description of the job location (e.g. TELECOMMUTE for telecommute jobs).', + 'jobStartDate' => 'The date on which a successful applicant for this job would be expected to start work. Choose a specific date in the future or use the jobImmediateStart property to indicate the position is to be filled as soon as possible.', + '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.', + 'name' => 'The name of the item.', + 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', + 'physicalRequirement' => 'A description of the types of physical activity associated with the job. Defined terms such as those in O*net may be used, but note that there is no way to specify the level of ability as well as its nature when using a defined term.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'qualifications' => 'Specific qualifications required for this role or Occupation.', + 'relevantOccupation' => 'The Occupation for the JobPosting.', + 'responsibilities' => 'Responsibilities associated with this role or Occupation.', + 'salaryCurrency' => 'The currency (coded using [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)) used for the main salary information in this job posting or for this employee.', + '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.', + 'securityClearanceRequirement' => 'A description of any security clearance requirements of the job.', + 'sensoryRequirement' => 'A description of any sensory requirements and levels necessary to function on the job, including hearing and vision. Defined terms such as those in O*net may be used, but note that there is no way to specify the level of ability as well as its nature when using a defined term.', + 'skills' => 'A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is desired or required to fulfill this role or to work in this occupation.', + 'specialCommitments' => 'Any special commitments associated with this job posting. Valid entries include VeteranCommit, MilitarySpouseCommit, etc.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'title' => 'The title of the job.', + 'totalJobOpenings' => 'The number of positions open for this job posting. Use a positive integer. Do not use if the number of positions is unclear or not known.', + 'url' => 'URL of the item.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'workHours' => 'The typical working hours for this job (e.g. 1st shift, night shift, 8am-5pm).', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/JoinAction.php b/src/models/jsonld/JoinAction.php index 1845b885b..baa46db4c 100644 --- a/src/models/jsonld/JoinAction.php +++ b/src/models/jsonld/JoinAction.php @@ -28,149 +28,149 @@ */ class JoinAction extends MetaJsonLd implements JoinActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use JoinActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'JoinAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/JoinAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent joins an event/group with participants/friends at a location.\n\nRelated actions:\n\n* [[RegisterAction]]: Unlike RegisterAction, JoinAction refers to joining a group/team of people.\n* [[SubscribeAction]]: Unlike SubscribeAction, JoinAction does not imply that you\'ll be receiving updates.\n* [[FollowAction]]: Unlike FollowAction, JoinAction does not imply that you\'ll be polling for updates.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use JoinActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'JoinAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/JoinAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent joins an event/group with participants/friends at a location.\n\nRelated actions:\n\n* [[RegisterAction]]: Unlike RegisterAction, JoinAction refers to joining a group/team of people.\n* [[SubscribeAction]]: Unlike SubscribeAction, JoinAction does not imply that you\'ll be receiving updates.\n* [[FollowAction]]: Unlike FollowAction, JoinAction does not imply that you\'ll be polling for updates.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Joint.php b/src/models/jsonld/Joint.php index 5b8ce7532..dbc08141a 100644 --- a/src/models/jsonld/Joint.php +++ b/src/models/jsonld/Joint.php @@ -23,161 +23,161 @@ */ class Joint extends MetaJsonLd implements JointInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use JointTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Joint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Joint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The anatomical location at which two or more bones make contact.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'biomechnicalClass' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'functionalClass' => ['MedicalEntity', 'Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'structuralClass' => ['Text'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'biomechnicalClass' => 'The biomechanical properties of the bone.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'functionalClass' => 'The degree of mobility the joint allows.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'structuralClass' => 'The name given to how bone physically connects to each other.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use JointTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Joint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Joint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The anatomical location at which two or more bones make contact.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'biomechnicalClass' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'functionalClass' => ['MedicalEntity', 'Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'structuralClass' => ['Text'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'biomechnicalClass' => 'The biomechanical properties of the bone.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'functionalClass' => 'The degree of mobility the joint allows.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'structuralClass' => 'The name given to how bone physically connects to each other.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/KosherDiet.php b/src/models/jsonld/KosherDiet.php index 6c319aec0..139e26db1 100644 --- a/src/models/jsonld/KosherDiet.php +++ b/src/models/jsonld/KosherDiet.php @@ -23,126 +23,126 @@ */ class KosherDiet extends MetaJsonLd implements KosherDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use KosherDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'KosherDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/KosherDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet conforming to Jewish dietary practices.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use KosherDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'KosherDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/KosherDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet conforming to Jewish dietary practices.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LaboratoryScience.php b/src/models/jsonld/LaboratoryScience.php index b39c57b19..451981a08 100644 --- a/src/models/jsonld/LaboratoryScience.php +++ b/src/models/jsonld/LaboratoryScience.php @@ -24,128 +24,128 @@ */ class LaboratoryScience extends MetaJsonLd implements LaboratoryScienceInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use LaboratoryScienceTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LaboratoryScience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LaboratoryScience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical science pertaining to chemical, hematological, immunologic, microscopic, or bacteriological diagnostic analyses or research.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LaboratoryScienceTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LaboratoryScience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LaboratoryScience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical science pertaining to chemical, hematological, immunologic, microscopic, or bacteriological diagnostic analyses or research.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LakeBodyOfWater.php b/src/models/jsonld/LakeBodyOfWater.php index 81f67e0af..e975db4e6 100644 --- a/src/models/jsonld/LakeBodyOfWater.php +++ b/src/models/jsonld/LakeBodyOfWater.php @@ -23,214 +23,214 @@ */ class LakeBodyOfWater extends MetaJsonLd implements LakeBodyOfWaterInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use LakeBodyOfWaterTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LakeBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LakeBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A lake (for example, Lake Pontrachain).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LakeBodyOfWaterTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LakeBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LakeBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A lake (for example, Lake Pontrachain).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Landform.php b/src/models/jsonld/Landform.php index f51c8dd25..1db04f2ac 100644 --- a/src/models/jsonld/Landform.php +++ b/src/models/jsonld/Landform.php @@ -27,212 +27,212 @@ */ class Landform extends MetaJsonLd implements LandformInterface, PlaceInterface, ThingInterface { - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Landform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Landform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A landform or physical feature. Landform elements include mountains, plains, lakes, rivers, seascape and oceanic waterbody interface features such as bays, peninsulas, seas and so forth, including sub-aqueous terrain features such as submersed mountain ranges, volcanoes, and the great ocean basins.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Landform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Landform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A landform or physical feature. Landform elements include mountains, plains, lakes, rivers, seascape and oceanic waterbody interface features such as bays, peninsulas, seas and so forth, including sub-aqueous terrain features such as submersed mountain ranges, volcanoes, and the great ocean basins.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LandmarksOrHistoricalBuildings.php b/src/models/jsonld/LandmarksOrHistoricalBuildings.php index 0e386c3c8..d38553929 100644 --- a/src/models/jsonld/LandmarksOrHistoricalBuildings.php +++ b/src/models/jsonld/LandmarksOrHistoricalBuildings.php @@ -23,212 +23,212 @@ */ class LandmarksOrHistoricalBuildings extends MetaJsonLd implements LandmarksOrHistoricalBuildingsInterface, PlaceInterface, ThingInterface { - use LandmarksOrHistoricalBuildingsTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LandmarksOrHistoricalBuildings'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LandmarksOrHistoricalBuildings'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An historical landmark or building.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LandmarksOrHistoricalBuildingsTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LandmarksOrHistoricalBuildings'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LandmarksOrHistoricalBuildings'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An historical landmark or building.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Language.php b/src/models/jsonld/Language.php index 969f47090..6ae75d2f5 100644 --- a/src/models/jsonld/Language.php +++ b/src/models/jsonld/Language.php @@ -28,122 +28,122 @@ */ class Language extends MetaJsonLd implements LanguageInterface, IntangibleInterface, ThingInterface { - use LanguageTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Language'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Language'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Natural languages such as Spanish, Tamil, Hindi, English, etc. Formal language code tags expressed in [BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) can be used via the [[alternateName]] property. The Language type previously also covered programming languages such as Scheme and Lisp, which are now best represented using [[ComputerLanguage]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LanguageTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Language'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Language'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Natural languages such as Spanish, Tamil, Hindi, English, etc. Formal language code tags expressed in [BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) can be used via the [[alternateName]] property. The Language type previously also covered programming languages such as Scheme and Lisp, which are now best represented using [[ComputerLanguage]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LaserDiscFormat.php b/src/models/jsonld/LaserDiscFormat.php index 961973c15..1dfdae9b1 100644 --- a/src/models/jsonld/LaserDiscFormat.php +++ b/src/models/jsonld/LaserDiscFormat.php @@ -23,126 +23,126 @@ */ class LaserDiscFormat extends MetaJsonLd implements LaserDiscFormatInterface, MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LaserDiscFormatTrait; - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LaserDiscFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LaserDiscFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'LaserDiscFormat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LaserDiscFormatTrait; + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LaserDiscFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LaserDiscFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'LaserDiscFormat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LearningResource.php b/src/models/jsonld/LearningResource.php index 791e2812b..6dd3e5df4 100644 --- a/src/models/jsonld/LearningResource.php +++ b/src/models/jsonld/LearningResource.php @@ -30,348 +30,348 @@ */ class LearningResource extends MetaJsonLd implements LearningResourceInterface, CreativeWorkInterface, ThingInterface { - use LearningResourceTrait; - use CreativeWorkTrait; - use ThingTrait; + use LearningResourceTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LearningResource'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LearningResource'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LearningResource'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LearningResource'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "The LearningResource type can be used to indicate [[CreativeWork]]s (whether physical or digital) that have a particular and explicit orientation towards learning, education, skill acquisition, and other educational purposes.\n\n[[LearningResource]] is expected to be used as an addition to a primary type such as [[Book]], [[VideoObject]], [[Product]] etc.\n\n[[EducationEvent]] serves a similar purpose for event-like things (e.g. a [[Trip]]). A [[LearningResource]] may be created as a result of an [[EducationEvent]], for example by recording one."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "The LearningResource type can be used to indicate [[CreativeWork]]s (whether physical or digital) that have a particular and explicit orientation towards learning, education, skill acquisition, and other educational purposes.\n\n[[LearningResource]] is expected to be used as an addition to a primary type such as [[Book]], [[VideoObject]], [[Product]] etc.\n\n[[EducationEvent]] serves a similar purpose for event-like things (e.g. a [[Trip]]). A [[LearningResource]] may be created as a result of an [[EducationEvent]], for example by recording one."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LeaveAction.php b/src/models/jsonld/LeaveAction.php index 487b92a28..fc83f66c6 100644 --- a/src/models/jsonld/LeaveAction.php +++ b/src/models/jsonld/LeaveAction.php @@ -26,149 +26,149 @@ */ class LeaveAction extends MetaJsonLd implements LeaveActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use LeaveActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LeaveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LeaveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent leaves an event / group with participants/friends at a location.\n\nRelated actions:\n\n* [[JoinAction]]: The antonym of LeaveAction.\n* [[UnRegisterAction]]: Unlike UnRegisterAction, LeaveAction implies leaving a group/team of people rather than a service.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LeaveActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LeaveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LeaveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent leaves an event / group with participants/friends at a location.\n\nRelated actions:\n\n* [[JoinAction]]: The antonym of LeaveAction.\n* [[UnRegisterAction]]: Unlike UnRegisterAction, LeaveAction implies leaving a group/team of people rather than a service.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LeftHandDriving.php b/src/models/jsonld/LeftHandDriving.php index a8b7b00fa..4d873c08f 100644 --- a/src/models/jsonld/LeftHandDriving.php +++ b/src/models/jsonld/LeftHandDriving.php @@ -24,143 +24,143 @@ */ class LeftHandDriving extends MetaJsonLd implements LeftHandDrivingInterface, SteeringPositionValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LeftHandDrivingTrait; - use SteeringPositionValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LeftHandDriving'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LeftHandDriving'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SteeringPositionValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The steering position is on the left side of the vehicle (viewed from the main direction of driving).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LeftHandDrivingTrait; + use SteeringPositionValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LeftHandDriving'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LeftHandDriving'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SteeringPositionValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The steering position is on the left side of the vehicle (viewed from the main direction of driving).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LegalForceStatus.php b/src/models/jsonld/LegalForceStatus.php index 51fed2817..692b6e254 100644 --- a/src/models/jsonld/LegalForceStatus.php +++ b/src/models/jsonld/LegalForceStatus.php @@ -23,126 +23,126 @@ */ class LegalForceStatus extends MetaJsonLd implements LegalForceStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LegalForceStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LegalForceStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LegalForceStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A list of possible statuses for the legal force of a legislation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LegalForceStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LegalForceStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LegalForceStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A list of possible statuses for the legal force of a legislation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LegalService.php b/src/models/jsonld/LegalService.php index d10600297..45abf5005 100644 --- a/src/models/jsonld/LegalService.php +++ b/src/models/jsonld/LegalService.php @@ -25,330 +25,330 @@ */ class LegalService extends MetaJsonLd implements LegalServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use LegalServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use LegalServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LegalService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LegalService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LegalService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LegalService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A LegalService is a business that provides legally-oriented services, advice and representation, e.g. law firms.\n\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\(s).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A LegalService is a business that provides legally-oriented services, advice and representation, e.g. law firms.\n\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\(s).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LegalValueLevel.php b/src/models/jsonld/LegalValueLevel.php index 823d3f64d..7ac0bc833 100644 --- a/src/models/jsonld/LegalValueLevel.php +++ b/src/models/jsonld/LegalValueLevel.php @@ -23,125 +23,125 @@ */ class LegalValueLevel extends MetaJsonLd implements LegalValueLevelInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LegalValueLevelTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LegalValueLevel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LegalValueLevel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A list of possible levels for the legal validity of a legislation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LegalValueLevelTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LegalValueLevel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LegalValueLevel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A list of possible levels for the legal validity of a legislation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Legislation.php b/src/models/jsonld/Legislation.php index 9ccabc464..b9a5a9819 100644 --- a/src/models/jsonld/Legislation.php +++ b/src/models/jsonld/Legislation.php @@ -24,372 +24,372 @@ */ class Legislation extends MetaJsonLd implements LegislationInterface, CreativeWorkInterface, ThingInterface { - use LegislationTrait; - use CreativeWorkTrait; - use ThingTrait; + use LegislationTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Legislation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Legislation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Legislation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Legislation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A legal document such as an act, decree, bill, etc. (enforceable or not) or a component of a legal act (like an article).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A legal document such as an act, decree, bill, etc. (enforceable or not) or a component of a legal act (like an article).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'jurisdiction' => ['AdministrativeArea', 'Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'legislationApplies' => ['Legislation'], - 'legislationChanges' => ['Legislation'], - 'legislationConsolidates' => ['Legislation'], - 'legislationDate' => ['Date'], - 'legislationDateVersion' => ['Date'], - 'legislationIdentifier' => ['URL', 'Text'], - 'legislationJurisdiction' => ['AdministrativeArea', 'Text'], - 'legislationLegalForce' => ['LegalForceStatus'], - 'legislationPassedBy' => ['Organization', 'Person'], - 'legislationResponsible' => ['Organization', 'Person'], - 'legislationTransposes' => ['Legislation'], - 'legislationType' => ['CategoryCode', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'jurisdiction' => ['AdministrativeArea', 'Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'legislationApplies' => ['Legislation'], + 'legislationChanges' => ['Legislation'], + 'legislationConsolidates' => ['Legislation'], + 'legislationDate' => ['Date'], + 'legislationDateVersion' => ['Date'], + 'legislationIdentifier' => ['URL', 'Text'], + 'legislationJurisdiction' => ['AdministrativeArea', 'Text'], + 'legislationLegalForce' => ['LegalForceStatus'], + 'legislationPassedBy' => ['Organization', 'Person'], + 'legislationResponsible' => ['Organization', 'Person'], + 'legislationTransposes' => ['Legislation'], + 'legislationType' => ['CategoryCode', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'jurisdiction' => 'Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'legislationApplies' => 'Indicates that this legislation (or part of a legislation) somehow transfers another legislation in a different legislative context. This is an informative link, and it has no legal value. For legally-binding links of transposition, use the legislationTransposes property. For example an informative consolidated law of a European Union\'s member state "applies" the consolidated version of the European Directive implemented in it.', - 'legislationChanges' => 'Another legislation that this legislation changes. This encompasses the notions of amendment, replacement, correction, repeal, or other types of change. This may be a direct change (textual or non-textual amendment) or a consequential or indirect change. The property is to be used to express the existence of a change relationship between two acts rather than the existence of a consolidated version of the text that shows the result of the change. For consolidation relationships, use the legislationConsolidates property.', - 'legislationConsolidates' => 'Indicates another legislation taken into account in this consolidated legislation (which is usually the product of an editorial process that revises the legislation). This property should be used multiple times to refer to both the original version or the previous consolidated version, and to the legislations making the change.', - 'legislationDate' => 'The date of adoption or signature of the legislation. This is the date at which the text is officially aknowledged to be a legislation, even though it might not even be published or in force.', - 'legislationDateVersion' => 'The point-in-time at which the provided description of the legislation is valid (e.g.: when looking at the law on the 2016-04-07 (= dateVersion), I get the consolidation of 2015-04-12 of the "National Insurance Contributions Act 2015")', - 'legislationIdentifier' => 'An identifier for the legislation. This can be either a string-based identifier, like the CELEX at EU level or the NOR in France, or a web-based, URL/URI identifier, like an ELI (European Legislation Identifier) or an URN-Lex.', - 'legislationJurisdiction' => 'The jurisdiction from which the legislation originates.', - 'legislationLegalForce' => 'Whether the legislation is currently in force, not in force, or partially in force.', - 'legislationPassedBy' => 'The person or organization that originally passed or made the law: typically parliament (for primary legislation) or government (for secondary legislation). This indicates the "legal author" of the law, as opposed to its physical author.', - 'legislationResponsible' => 'An individual or organization that has some kind of responsibility for the legislation. Typically the ministry who is/was in charge of elaborating the legislation, or the adressee for potential questions about the legislation once it is published.', - 'legislationTransposes' => 'Indicates that this legislation (or part of legislation) fulfills the objectives set by another legislation, by passing appropriate implementation measures. Typically, some legislations of European Union\'s member states or regions transpose European Directives. This indicates a legally binding link between the 2 legislations.', - 'legislationType' => 'The type of the legislation. Examples of values are "law", "act", "directive", "decree", "regulation", "statutory instrument", "loi organique", "règlement grand-ducal", etc., depending on the country.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'jurisdiction' => 'Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'legislationApplies' => 'Indicates that this legislation (or part of a legislation) somehow transfers another legislation in a different legislative context. This is an informative link, and it has no legal value. For legally-binding links of transposition, use the legislationTransposes property. For example an informative consolidated law of a European Union\'s member state "applies" the consolidated version of the European Directive implemented in it.', + 'legislationChanges' => 'Another legislation that this legislation changes. This encompasses the notions of amendment, replacement, correction, repeal, or other types of change. This may be a direct change (textual or non-textual amendment) or a consequential or indirect change. The property is to be used to express the existence of a change relationship between two acts rather than the existence of a consolidated version of the text that shows the result of the change. For consolidation relationships, use the legislationConsolidates property.', + 'legislationConsolidates' => 'Indicates another legislation taken into account in this consolidated legislation (which is usually the product of an editorial process that revises the legislation). This property should be used multiple times to refer to both the original version or the previous consolidated version, and to the legislations making the change.', + 'legislationDate' => 'The date of adoption or signature of the legislation. This is the date at which the text is officially aknowledged to be a legislation, even though it might not even be published or in force.', + 'legislationDateVersion' => 'The point-in-time at which the provided description of the legislation is valid (e.g.: when looking at the law on the 2016-04-07 (= dateVersion), I get the consolidation of 2015-04-12 of the "National Insurance Contributions Act 2015")', + 'legislationIdentifier' => 'An identifier for the legislation. This can be either a string-based identifier, like the CELEX at EU level or the NOR in France, or a web-based, URL/URI identifier, like an ELI (European Legislation Identifier) or an URN-Lex.', + 'legislationJurisdiction' => 'The jurisdiction from which the legislation originates.', + 'legislationLegalForce' => 'Whether the legislation is currently in force, not in force, or partially in force.', + 'legislationPassedBy' => 'The person or organization that originally passed or made the law: typically parliament (for primary legislation) or government (for secondary legislation). This indicates the "legal author" of the law, as opposed to its physical author.', + 'legislationResponsible' => 'An individual or organization that has some kind of responsibility for the legislation. Typically the ministry who is/was in charge of elaborating the legislation, or the adressee for potential questions about the legislation once it is published.', + 'legislationTransposes' => 'Indicates that this legislation (or part of legislation) fulfills the objectives set by another legislation, by passing appropriate implementation measures. Typically, some legislations of European Union\'s member states or regions transpose European Directives. This indicates a legally binding link between the 2 legislations.', + 'legislationType' => 'The type of the legislation. Examples of values are "law", "act", "directive", "decree", "regulation", "statutory instrument", "loi organique", "règlement grand-ducal", etc., depending on the country.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LegislationObject.php b/src/models/jsonld/LegislationObject.php index 10e434929..015a27efd 100644 --- a/src/models/jsonld/LegislationObject.php +++ b/src/models/jsonld/LegislationObject.php @@ -25,412 +25,412 @@ */ class LegislationObject extends MetaJsonLd implements LegislationObjectInterface, LegislationInterface, CreativeWorkInterface, ThingInterface, MediaObjectInterface { - use LegislationObjectTrait; - use LegislationTrait; - use CreativeWorkTrait; - use ThingTrait; - use MediaObjectTrait; + use LegislationObjectTrait; + use LegislationTrait; + use CreativeWorkTrait; + use ThingTrait; + use MediaObjectTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LegislationObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LegislationObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LegislationObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LegislationObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Legislation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Legislation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific object or file containing a Legislation. Note that the same Legislation can be published in multiple files. For example, a digitally signed PDF, a plain PDF and an HTML version.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific object or file containing a Legislation. Note that the same Legislation can be published in multiple files. For example, a digitally signed PDF, a plain PDF and an HTML version.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'jurisdiction' => ['AdministrativeArea', 'Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'legislationApplies' => ['Legislation'], - 'legislationChanges' => ['Legislation'], - 'legislationConsolidates' => ['Legislation'], - 'legislationDate' => ['Date'], - 'legislationDateVersion' => ['Date'], - 'legislationIdentifier' => ['URL', 'Text'], - 'legislationJurisdiction' => ['AdministrativeArea', 'Text'], - 'legislationLegalForce' => ['LegalForceStatus'], - 'legislationLegalValue' => ['LegalValueLevel'], - 'legislationPassedBy' => ['Organization', 'Person'], - 'legislationResponsible' => ['Organization', 'Person'], - 'legislationTransposes' => ['Legislation'], - 'legislationType' => ['CategoryCode', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'jurisdiction' => ['AdministrativeArea', 'Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'legislationApplies' => ['Legislation'], + 'legislationChanges' => ['Legislation'], + 'legislationConsolidates' => ['Legislation'], + 'legislationDate' => ['Date'], + 'legislationDateVersion' => ['Date'], + 'legislationIdentifier' => ['URL', 'Text'], + 'legislationJurisdiction' => ['AdministrativeArea', 'Text'], + 'legislationLegalForce' => ['LegalForceStatus'], + 'legislationLegalValue' => ['LegalValueLevel'], + 'legislationPassedBy' => ['Organization', 'Person'], + 'legislationResponsible' => ['Organization', 'Person'], + 'legislationTransposes' => ['Legislation'], + 'legislationType' => ['CategoryCode', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'jurisdiction' => 'Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'legislationApplies' => 'Indicates that this legislation (or part of a legislation) somehow transfers another legislation in a different legislative context. This is an informative link, and it has no legal value. For legally-binding links of transposition, use the legislationTransposes property. For example an informative consolidated law of a European Union\'s member state "applies" the consolidated version of the European Directive implemented in it.', - 'legislationChanges' => 'Another legislation that this legislation changes. This encompasses the notions of amendment, replacement, correction, repeal, or other types of change. This may be a direct change (textual or non-textual amendment) or a consequential or indirect change. The property is to be used to express the existence of a change relationship between two acts rather than the existence of a consolidated version of the text that shows the result of the change. For consolidation relationships, use the legislationConsolidates property.', - 'legislationConsolidates' => 'Indicates another legislation taken into account in this consolidated legislation (which is usually the product of an editorial process that revises the legislation). This property should be used multiple times to refer to both the original version or the previous consolidated version, and to the legislations making the change.', - 'legislationDate' => 'The date of adoption or signature of the legislation. This is the date at which the text is officially aknowledged to be a legislation, even though it might not even be published or in force.', - 'legislationDateVersion' => 'The point-in-time at which the provided description of the legislation is valid (e.g.: when looking at the law on the 2016-04-07 (= dateVersion), I get the consolidation of 2015-04-12 of the "National Insurance Contributions Act 2015")', - 'legislationIdentifier' => 'An identifier for the legislation. This can be either a string-based identifier, like the CELEX at EU level or the NOR in France, or a web-based, URL/URI identifier, like an ELI (European Legislation Identifier) or an URN-Lex.', - 'legislationJurisdiction' => 'The jurisdiction from which the legislation originates.', - 'legislationLegalForce' => 'Whether the legislation is currently in force, not in force, or partially in force.', - 'legislationLegalValue' => 'The legal value of this legislation file. The same legislation can be written in multiple files with different legal values. Typically a digitally signed PDF have a "stronger" legal value than the HTML file of the same act.', - 'legislationPassedBy' => 'The person or organization that originally passed or made the law: typically parliament (for primary legislation) or government (for secondary legislation). This indicates the "legal author" of the law, as opposed to its physical author.', - 'legislationResponsible' => 'An individual or organization that has some kind of responsibility for the legislation. Typically the ministry who is/was in charge of elaborating the legislation, or the adressee for potential questions about the legislation once it is published.', - 'legislationTransposes' => 'Indicates that this legislation (or part of legislation) fulfills the objectives set by another legislation, by passing appropriate implementation measures. Typically, some legislations of European Union\'s member states or regions transpose European Directives. This indicates a legally binding link between the 2 legislations.', - 'legislationType' => 'The type of the legislation. Examples of values are "law", "act", "directive", "decree", "regulation", "statutory instrument", "loi organique", "règlement grand-ducal", etc., depending on the country.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'jurisdiction' => 'Indicates a legal jurisdiction, e.g. of some legislation, or where some government service is based.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'legislationApplies' => 'Indicates that this legislation (or part of a legislation) somehow transfers another legislation in a different legislative context. This is an informative link, and it has no legal value. For legally-binding links of transposition, use the legislationTransposes property. For example an informative consolidated law of a European Union\'s member state "applies" the consolidated version of the European Directive implemented in it.', + 'legislationChanges' => 'Another legislation that this legislation changes. This encompasses the notions of amendment, replacement, correction, repeal, or other types of change. This may be a direct change (textual or non-textual amendment) or a consequential or indirect change. The property is to be used to express the existence of a change relationship between two acts rather than the existence of a consolidated version of the text that shows the result of the change. For consolidation relationships, use the legislationConsolidates property.', + 'legislationConsolidates' => 'Indicates another legislation taken into account in this consolidated legislation (which is usually the product of an editorial process that revises the legislation). This property should be used multiple times to refer to both the original version or the previous consolidated version, and to the legislations making the change.', + 'legislationDate' => 'The date of adoption or signature of the legislation. This is the date at which the text is officially aknowledged to be a legislation, even though it might not even be published or in force.', + 'legislationDateVersion' => 'The point-in-time at which the provided description of the legislation is valid (e.g.: when looking at the law on the 2016-04-07 (= dateVersion), I get the consolidation of 2015-04-12 of the "National Insurance Contributions Act 2015")', + 'legislationIdentifier' => 'An identifier for the legislation. This can be either a string-based identifier, like the CELEX at EU level or the NOR in France, or a web-based, URL/URI identifier, like an ELI (European Legislation Identifier) or an URN-Lex.', + 'legislationJurisdiction' => 'The jurisdiction from which the legislation originates.', + 'legislationLegalForce' => 'Whether the legislation is currently in force, not in force, or partially in force.', + 'legislationLegalValue' => 'The legal value of this legislation file. The same legislation can be written in multiple files with different legal values. Typically a digitally signed PDF have a "stronger" legal value than the HTML file of the same act.', + 'legislationPassedBy' => 'The person or organization that originally passed or made the law: typically parliament (for primary legislation) or government (for secondary legislation). This indicates the "legal author" of the law, as opposed to its physical author.', + 'legislationResponsible' => 'An individual or organization that has some kind of responsibility for the legislation. Typically the ministry who is/was in charge of elaborating the legislation, or the adressee for potential questions about the legislation once it is published.', + 'legislationTransposes' => 'Indicates that this legislation (or part of legislation) fulfills the objectives set by another legislation, by passing appropriate implementation measures. Typically, some legislations of European Union\'s member states or regions transpose European Directives. This indicates a legally binding link between the 2 legislations.', + 'legislationType' => 'The type of the legislation. Examples of values are "law", "act", "directive", "decree", "regulation", "statutory instrument", "loi organique", "règlement grand-ducal", etc., depending on the country.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LegislativeBuilding.php b/src/models/jsonld/LegislativeBuilding.php index c01f68fbe..e0a5d3b2c 100644 --- a/src/models/jsonld/LegislativeBuilding.php +++ b/src/models/jsonld/LegislativeBuilding.php @@ -23,216 +23,216 @@ */ class LegislativeBuilding extends MetaJsonLd implements LegislativeBuildingInterface, GovernmentBuildingInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use LegislativeBuildingTrait; - use GovernmentBuildingTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LegislativeBuilding'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LegislativeBuilding'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBuilding'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A legislative building—for example, the state capitol.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LegislativeBuildingTrait; + use GovernmentBuildingTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LegislativeBuilding'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LegislativeBuilding'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBuilding'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A legislative building—for example, the state capitol.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LeisureTimeActivity.php b/src/models/jsonld/LeisureTimeActivity.php index a818c85b6..07e208574 100644 --- a/src/models/jsonld/LeisureTimeActivity.php +++ b/src/models/jsonld/LeisureTimeActivity.php @@ -24,126 +24,126 @@ */ class LeisureTimeActivity extends MetaJsonLd implements LeisureTimeActivityInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LeisureTimeActivityTrait; - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LeisureTimeActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LeisureTimeActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any physical activity engaged in for recreational purposes. Examples may include ballroom dancing, roller skating, canoeing, fishing, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LeisureTimeActivityTrait; + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LeisureTimeActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LeisureTimeActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any physical activity engaged in for recreational purposes. Examples may include ballroom dancing, roller skating, canoeing, fishing, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LendAction.php b/src/models/jsonld/LendAction.php index 488320498..1c0ac0001 100644 --- a/src/models/jsonld/LendAction.php +++ b/src/models/jsonld/LendAction.php @@ -25,153 +25,153 @@ */ class LendAction extends MetaJsonLd implements LendActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use LendActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of providing an object under an agreement that it will be returned at a later date. Reciprocal of BorrowAction.\n\nRelated actions:\n\n* [[BorrowAction]]: Reciprocal of LendAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'borrower' => ['Person'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'borrower' => 'A sub property of participant. The person that borrows the object being lent.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LendActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of providing an object under an agreement that it will be returned at a later date. Reciprocal of BorrowAction.\n\nRelated actions:\n\n* [[BorrowAction]]: Reciprocal of LendAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'borrower' => ['Person'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'borrower' => 'A sub property of participant. The person that borrows the object being lent.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Library.php b/src/models/jsonld/Library.php index 11ee9a855..e694645aa 100644 --- a/src/models/jsonld/Library.php +++ b/src/models/jsonld/Library.php @@ -23,330 +23,330 @@ */ class Library extends MetaJsonLd implements LibraryInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use LibraryTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use LibraryTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Library'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Library'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Library'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Library'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A library.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A library.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LibrarySystem.php b/src/models/jsonld/LibrarySystem.php index 9e5d98582..ab6791c1f 100644 --- a/src/models/jsonld/LibrarySystem.php +++ b/src/models/jsonld/LibrarySystem.php @@ -23,254 +23,254 @@ */ class LibrarySystem extends MetaJsonLd implements LibrarySystemInterface, OrganizationInterface, ThingInterface { - use LibrarySystemTrait; - use OrganizationTrait; - use ThingTrait; + use LibrarySystemTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LibrarySystem'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LibrarySystem'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LibrarySystem'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LibrarySystem'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[LibrarySystem]] is a collaborative system amongst several libraries.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[LibrarySystem]] is a collaborative system amongst several libraries.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LifestyleModification.php b/src/models/jsonld/LifestyleModification.php index 18ff2270b..d92713abe 100644 --- a/src/models/jsonld/LifestyleModification.php +++ b/src/models/jsonld/LifestyleModification.php @@ -24,138 +24,138 @@ */ class LifestyleModification extends MetaJsonLd implements LifestyleModificationInterface, MedicalEntityInterface, ThingInterface { - use LifestyleModificationTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LifestyleModification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LifestyleModification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A process of care involving exercise, changes to diet, fitness routines, and other lifestyle changes aimed at improving a health condition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LifestyleModificationTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LifestyleModification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LifestyleModification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A process of care involving exercise, changes to diet, fitness routines, and other lifestyle changes aimed at improving a health condition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Ligament.php b/src/models/jsonld/Ligament.php index 93d506c65..0a650f8a7 100644 --- a/src/models/jsonld/Ligament.php +++ b/src/models/jsonld/Ligament.php @@ -24,155 +24,155 @@ */ class Ligament extends MetaJsonLd implements LigamentInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use LigamentTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Ligament'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Ligament'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A short band of tough, flexible, fibrous connective tissue that functions to connect multiple bones, cartilages, and structurally support joints.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LigamentTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Ligament'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Ligament'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A short band of tough, flexible, fibrous connective tissue that functions to connect multiple bones, cartilages, and structurally support joints.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LikeAction.php b/src/models/jsonld/LikeAction.php index 25b8a8b38..0fdb35dda 100644 --- a/src/models/jsonld/LikeAction.php +++ b/src/models/jsonld/LikeAction.php @@ -24,148 +24,148 @@ */ class LikeAction extends MetaJsonLd implements LikeActionInterface, ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use LikeActionTrait; - use ReactActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LikeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LikeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of expressing a positive sentiment about the object. An agent likes an object (a proposition, topic or theme) with participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LikeActionTrait; + use ReactActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LikeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LikeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of expressing a positive sentiment about the object. An agent likes an object (a proposition, topic or theme) with participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LimitedAvailability.php b/src/models/jsonld/LimitedAvailability.php index 8e1454d22..f5daec633 100644 --- a/src/models/jsonld/LimitedAvailability.php +++ b/src/models/jsonld/LimitedAvailability.php @@ -23,126 +23,126 @@ */ class LimitedAvailability extends MetaJsonLd implements LimitedAvailabilityInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LimitedAvailabilityTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LimitedAvailability'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LimitedAvailability'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item has limited availability.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LimitedAvailabilityTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LimitedAvailability'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LimitedAvailability'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item has limited availability.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LimitedByGuaranteeCharity.php b/src/models/jsonld/LimitedByGuaranteeCharity.php index 49a0152a9..68fe8f1c5 100644 --- a/src/models/jsonld/LimitedByGuaranteeCharity.php +++ b/src/models/jsonld/LimitedByGuaranteeCharity.php @@ -24,127 +24,127 @@ */ class LimitedByGuaranteeCharity extends MetaJsonLd implements LimitedByGuaranteeCharityInterface, UKNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LimitedByGuaranteeCharityTrait; - use UKNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LimitedByGuaranteeCharity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LimitedByGuaranteeCharity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'LimitedByGuaranteeCharity: Non-profit type referring to a charitable company that is limited by guarantee (UK).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LimitedByGuaranteeCharityTrait; + use UKNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LimitedByGuaranteeCharity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LimitedByGuaranteeCharity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'LimitedByGuaranteeCharity: Non-profit type referring to a charitable company that is limited by guarantee (UK).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LinkRole.php b/src/models/jsonld/LinkRole.php index 33db46ea2..eab12f446 100644 --- a/src/models/jsonld/LinkRole.php +++ b/src/models/jsonld/LinkRole.php @@ -27,135 +27,135 @@ */ class LinkRole extends MetaJsonLd implements LinkRoleInterface, RoleInterface, IntangibleInterface, ThingInterface { - use LinkRoleTrait; - use RoleTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LinkRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LinkRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Role'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Role that represents a Web link, e.g. as expressed via the \'url\' property. Its linkRelationship property can indicate URL-based and plain textual link types, e.g. those in IANA link registry or others such as \'amphtml\'. This structure provides a placeholder where details from HTML\'s link element can be represented outside of HTML, e.g. in JSON-LD feeds.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'linkRelationship' => ['Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'namedPosition' => ['Text', 'URL'], - 'potentialAction' => ['Action'], - 'roleName' => ['Text', 'URL'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'linkRelationship' => 'Indicates the relationship type of a Web link. ', - '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.', - 'name' => 'The name of the item.', - 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LinkRoleTrait; + use RoleTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LinkRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LinkRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Role'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Role that represents a Web link, e.g. as expressed via the \'url\' property. Its linkRelationship property can indicate URL-based and plain textual link types, e.g. those in IANA link registry or others such as \'amphtml\'. This structure provides a placeholder where details from HTML\'s link element can be represented outside of HTML, e.g. in JSON-LD feeds.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'linkRelationship' => ['Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'namedPosition' => ['Text', 'URL'], + 'potentialAction' => ['Action'], + 'roleName' => ['Text', 'URL'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'linkRelationship' => 'Indicates the relationship type of a Web link. ', + '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.', + 'name' => 'The name of the item.', + 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LiquorStore.php b/src/models/jsonld/LiquorStore.php index f052a5d48..4327bb7af 100644 --- a/src/models/jsonld/LiquorStore.php +++ b/src/models/jsonld/LiquorStore.php @@ -24,331 +24,331 @@ */ class LiquorStore extends MetaJsonLd implements LiquorStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use LiquorStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use LiquorStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LiquorStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LiquorStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LiquorStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LiquorStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A shop that sells alcoholic drinks such as wine, beer, whisky and other spirits.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A shop that sells alcoholic drinks such as wine, beer, whisky and other spirits.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ListItem.php b/src/models/jsonld/ListItem.php index 69604802e..8bc518843 100644 --- a/src/models/jsonld/ListItem.php +++ b/src/models/jsonld/ListItem.php @@ -23,130 +23,130 @@ */ class ListItem extends MetaJsonLd implements ListItemInterface, IntangibleInterface, ThingInterface { - use ListItemTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ListItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ListItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An list item, e.g. a step in a checklist or how-to description.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'item' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nextItem' => ['ListItem'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'previousItem' => ['ListItem'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', - '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.', - 'name' => 'The name of the item.', - 'nextItem' => 'A link to the ListItem that follows the current one.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousItem' => 'A link to the ListItem that precedes the current one.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ListItemTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ListItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ListItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An list item, e.g. a step in a checklist or how-to description.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'item' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nextItem' => ['ListItem'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'previousItem' => ['ListItem'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'item' => 'An entity represented by an entry in a list or data feed (e.g. an \'artist\' in a list of \'artists\').', + '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.', + 'name' => 'The name of the item.', + 'nextItem' => 'A link to the ListItem that follows the current one.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousItem' => 'A link to the ListItem that precedes the current one.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ListPrice.php b/src/models/jsonld/ListPrice.php index 916762482..c600d5db1 100644 --- a/src/models/jsonld/ListPrice.php +++ b/src/models/jsonld/ListPrice.php @@ -24,126 +24,126 @@ */ class ListPrice extends MetaJsonLd implements ListPriceInterface, PriceTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ListPriceTrait; - use PriceTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ListPrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ListPrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the list price (the price a product is actually advertised for) of an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ListPriceTrait; + use PriceTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ListPrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ListPrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the list price (the price a product is actually advertised for) of an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ListenAction.php b/src/models/jsonld/ListenAction.php index e1f65860b..c66015c5e 100644 --- a/src/models/jsonld/ListenAction.php +++ b/src/models/jsonld/ListenAction.php @@ -23,151 +23,151 @@ */ class ListenAction extends MetaJsonLd implements ListenActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use ListenActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ListenAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ListenAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of consuming audio content.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ListenActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ListenAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ListenAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of consuming audio content.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LiteraryEvent.php b/src/models/jsonld/LiteraryEvent.php index a18c4f39a..12fc225d7 100644 --- a/src/models/jsonld/LiteraryEvent.php +++ b/src/models/jsonld/LiteraryEvent.php @@ -23,204 +23,204 @@ */ class LiteraryEvent extends MetaJsonLd implements LiteraryEventInterface, EventInterface, ThingInterface { - use LiteraryEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LiteraryEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LiteraryEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Literary event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LiteraryEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LiteraryEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LiteraryEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Literary event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LiveAlbum.php b/src/models/jsonld/LiveAlbum.php index 2f6077305..1437086ea 100644 --- a/src/models/jsonld/LiveAlbum.php +++ b/src/models/jsonld/LiveAlbum.php @@ -23,126 +23,126 @@ */ class LiveAlbum extends MetaJsonLd implements LiveAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LiveAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LiveAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LiveAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'LiveAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LiveAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LiveAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LiveAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'LiveAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LiveBlogPosting.php b/src/models/jsonld/LiveBlogPosting.php index 7633ae8cb..2a02003f4 100644 --- a/src/models/jsonld/LiveBlogPosting.php +++ b/src/models/jsonld/LiveBlogPosting.php @@ -24,373 +24,373 @@ */ class LiveBlogPosting extends MetaJsonLd implements LiveBlogPostingInterface, BlogPostingInterface, SocialMediaPostingInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use LiveBlogPostingTrait; - use BlogPostingTrait; - use SocialMediaPostingTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use LiveBlogPostingTrait; + use BlogPostingTrait; + use SocialMediaPostingTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LiveBlogPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LiveBlogPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LiveBlogPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LiveBlogPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BlogPosting'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BlogPosting'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[LiveBlogPosting]] is a [[BlogPosting]] intended to provide a rolling textual coverage of an ongoing event through continuous updates.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[LiveBlogPosting]] is a [[BlogPosting]] intended to provide a rolling textual coverage of an ongoing event through continuous updates.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'coverageEndTime' => ['DateTime'], - 'coverageStartTime' => ['DateTime'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'liveBlogUpdate' => ['BlogPosting'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sharedContent' => ['CreativeWork'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'coverageEndTime' => ['DateTime'], + 'coverageStartTime' => ['DateTime'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'liveBlogUpdate' => ['BlogPosting'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sharedContent' => ['CreativeWork'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'coverageEndTime' => 'The time when the live blog will stop covering the Event. Note that coverage may continue after the Event concludes.', - 'coverageStartTime' => 'The time when the live blog will begin covering the Event. Note that coverage may begin before the Event\'s start time. The LiveBlogPosting may also be created before coverage begins.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'liveBlogUpdate' => 'An update to the LiveBlog.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'coverageEndTime' => 'The time when the live blog will stop covering the Event. Note that coverage may continue after the Event concludes.', + 'coverageStartTime' => 'The time when the live blog will begin covering the Event. Note that coverage may begin before the Event\'s start time. The LiveBlogPosting may also be created before coverage begins.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'liveBlogUpdate' => 'An update to the LiveBlog.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['coverageEndTime', 'coverageStartTime', 'dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['coverageEndTime', 'coverageStartTime', 'dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LivingWithHealthAspect.php b/src/models/jsonld/LivingWithHealthAspect.php index 1d6bb1f8c..fd4776343 100644 --- a/src/models/jsonld/LivingWithHealthAspect.php +++ b/src/models/jsonld/LivingWithHealthAspect.php @@ -23,126 +23,126 @@ */ class LivingWithHealthAspect extends MetaJsonLd implements LivingWithHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LivingWithHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LivingWithHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LivingWithHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Information about coping or life related to the topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LivingWithHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LivingWithHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LivingWithHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Information about coping or life related to the topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LoanOrCredit.php b/src/models/jsonld/LoanOrCredit.php index 3607c0707..abf4b2442 100644 --- a/src/models/jsonld/LoanOrCredit.php +++ b/src/models/jsonld/LoanOrCredit.php @@ -24,196 +24,196 @@ */ class LoanOrCredit extends MetaJsonLd implements LoanOrCreditInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use LoanOrCreditTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LoanOrCredit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LoanOrCredit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A financial product for the loaning of an amount of money, or line of credit, under agreed terms and charges.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'currency' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'gracePeriod' => ['Duration'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'loanRepaymentForm' => ['RepaymentSpecification'], - 'loanTerm' => ['QuantitativeValue'], - 'loanType' => ['URL', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'recourseLoan' => ['Boolean'], - 'renegotiableLoan' => ['Boolean'], - 'requiredCollateral' => ['Thing', 'Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'currency' => 'The currency in which the monetary amount is expressed. 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".', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'gracePeriod' => 'The period of time after any due date that the borrower has to fulfil its obligations before a default (failure to pay) is deemed to have occurred.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'loanRepaymentForm' => 'A form of paying back money previously borrowed from a lender. Repayment usually takes the form of periodic payments that normally include part principal plus interest in each payment.', - 'loanTerm' => 'The duration of the loan or credit agreement.', - 'loanType' => 'The type of a loan or credit.', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'recourseLoan' => 'The only way you get the money back in the event of default is the security. Recourse is where you still have the opportunity to go back to the borrower for the rest of the money.', - 'renegotiableLoan' => 'Whether the terms for payment of interest can be renegotiated during the life of the loan.', - 'requiredCollateral' => 'Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LoanOrCreditTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LoanOrCredit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LoanOrCredit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A financial product for the loaning of an amount of money, or line of credit, under agreed terms and charges.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'currency' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'gracePeriod' => ['Duration'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'loanRepaymentForm' => ['RepaymentSpecification'], + 'loanTerm' => ['QuantitativeValue'], + 'loanType' => ['URL', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'recourseLoan' => ['Boolean'], + 'renegotiableLoan' => ['Boolean'], + 'requiredCollateral' => ['Thing', 'Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'currency' => 'The currency in which the monetary amount is expressed. 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".', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'gracePeriod' => 'The period of time after any due date that the borrower has to fulfil its obligations before a default (failure to pay) is deemed to have occurred.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'loanRepaymentForm' => 'A form of paying back money previously borrowed from a lender. Repayment usually takes the form of periodic payments that normally include part principal plus interest in each payment.', + 'loanTerm' => 'The duration of the loan or credit agreement.', + 'loanType' => 'The type of a loan or credit.', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'recourseLoan' => 'The only way you get the money back in the event of default is the security. Recourse is where you still have the opportunity to go back to the borrower for the rest of the money.', + 'renegotiableLoan' => 'Whether the terms for payment of interest can be renegotiated during the life of the loan.', + 'requiredCollateral' => 'Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LocalBusiness.php b/src/models/jsonld/LocalBusiness.php index b75ac42b5..32a9d0db2 100644 --- a/src/models/jsonld/LocalBusiness.php +++ b/src/models/jsonld/LocalBusiness.php @@ -26,329 +26,329 @@ */ class LocalBusiness extends MetaJsonLd implements LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LocalBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LocalBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LocalBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LocalBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LocationFeatureSpecification.php b/src/models/jsonld/LocationFeatureSpecification.php index 35092a551..48c409edf 100644 --- a/src/models/jsonld/LocationFeatureSpecification.php +++ b/src/models/jsonld/LocationFeatureSpecification.php @@ -25,146 +25,146 @@ */ class LocationFeatureSpecification extends MetaJsonLd implements LocationFeatureSpecificationInterface, PropertyValueInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use LocationFeatureSpecificationTrait; - use PropertyValueTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LocationFeatureSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LocationFeatureSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PropertyValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies a location feature by providing a structured value representing a feature of an accommodation as a property-value pair of varying degrees of formality.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxValue' => ['Number'], - 'measurementTechnique' => ['URL', 'Text'], - 'minValue' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'propertyID' => ['Text', 'URL'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'unitCode' => ['Text', 'URL'], - 'unitText' => ['Text'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxValue' => 'The upper value of some characteristic or property.', - 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', - 'minValue' => 'The lower value of some characteristic or property.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'propertyID' => 'A commonly used identifier for the characteristic represented by the property, e.g. a manufacturer or a standard code for a property. propertyID can be (1) a prefixed string, mainly meant to be used with standards for product properties; (2) a site-specific, non-prefixed string (e.g. the primary key of the property or the vendor-specific ID of the property), or (3) a URL indicating the type of the property, either pointing to an external vocabulary, or a Web resource that describes the property (e.g. a glossary entry). Standards bodies should promote a standard prefix for the identifiers of properties from their standards.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', - 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LocationFeatureSpecificationTrait; + use PropertyValueTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LocationFeatureSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LocationFeatureSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PropertyValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies a location feature by providing a structured value representing a feature of an accommodation as a property-value pair of varying degrees of formality.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxValue' => ['Number'], + 'measurementTechnique' => ['URL', 'Text'], + 'minValue' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'propertyID' => ['Text', 'URL'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'unitCode' => ['Text', 'URL'], + 'unitText' => ['Text'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxValue' => 'The upper value of some characteristic or property.', + 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', + 'minValue' => 'The lower value of some characteristic or property.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'propertyID' => 'A commonly used identifier for the characteristic represented by the property, e.g. a manufacturer or a standard code for a property. propertyID can be (1) a prefixed string, mainly meant to be used with standards for product properties; (2) a site-specific, non-prefixed string (e.g. the primary key of the property or the vendor-specific ID of the property), or (3) a URL indicating the type of the property, either pointing to an external vocabulary, or a Web resource that describes the property (e.g. a glossary entry). Standards bodies should promote a standard prefix for the identifiers of properties from their standards.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', + 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LockerDelivery.php b/src/models/jsonld/LockerDelivery.php index 09fef65e9..f38770c57 100644 --- a/src/models/jsonld/LockerDelivery.php +++ b/src/models/jsonld/LockerDelivery.php @@ -23,126 +23,126 @@ */ class LockerDelivery extends MetaJsonLd implements LockerDeliveryInterface, DeliveryMethodInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LockerDeliveryTrait; - use DeliveryMethodTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LockerDelivery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LockerDelivery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DeliveryMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A DeliveryMethod in which an item is made available via locker.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LockerDeliveryTrait; + use DeliveryMethodTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LockerDelivery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LockerDelivery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DeliveryMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A DeliveryMethod in which an item is made available via locker.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Locksmith.php b/src/models/jsonld/Locksmith.php index 61ffa2b6a..8b121863e 100644 --- a/src/models/jsonld/Locksmith.php +++ b/src/models/jsonld/Locksmith.php @@ -23,331 +23,331 @@ */ class Locksmith extends MetaJsonLd implements LocksmithInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use LocksmithTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use LocksmithTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Locksmith'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Locksmith'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Locksmith'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Locksmith'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A locksmith.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A locksmith.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LodgingBusiness.php b/src/models/jsonld/LodgingBusiness.php index e3bc316f2..5cac82d40 100644 --- a/src/models/jsonld/LodgingBusiness.php +++ b/src/models/jsonld/LodgingBusiness.php @@ -23,344 +23,344 @@ */ class LodgingBusiness extends MetaJsonLd implements LodgingBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use LodgingBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use LodgingBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LodgingBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LodgingBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LodgingBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LodgingBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A lodging business, such as a motel, hotel, or inn.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A lodging business, such as a motel, hotel, or inn.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/LodgingReservation.php b/src/models/jsonld/LodgingReservation.php index bf201f0bb..59b04c8b9 100644 --- a/src/models/jsonld/LodgingReservation.php +++ b/src/models/jsonld/LodgingReservation.php @@ -25,161 +25,161 @@ */ class LodgingReservation extends MetaJsonLd implements LodgingReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use LodgingReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LodgingReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LodgingReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation for lodging at a hotel, motel, inn, etc.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lodgingUnitDescription' => ['Text'], - 'lodgingUnitType' => ['Text', 'QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'numAdults' => ['QuantitativeValue', 'Integer'], - 'numChildren' => ['Integer', 'QuantitativeValue'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lodgingUnitDescription' => 'A full description of the lodging unit.', - 'lodgingUnitType' => 'Textual description of the unit type (including suite vs. room, size of bed, etc.).', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'numAdults' => 'The number of adults staying in the unit.', - 'numChildren' => 'The number of children staying in the unit.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LodgingReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LodgingReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LodgingReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation for lodging at a hotel, motel, inn, etc.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lodgingUnitDescription' => ['Text'], + 'lodgingUnitType' => ['Text', 'QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'numAdults' => ['QuantitativeValue', 'Integer'], + 'numChildren' => ['Integer', 'QuantitativeValue'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lodgingUnitDescription' => 'A full description of the lodging unit.', + 'lodgingUnitType' => 'Textual description of the unit type (including suite vs. room, size of bed, etc.).', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'numAdults' => 'The number of adults staying in the unit.', + 'numChildren' => 'The number of children staying in the unit.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Longitudinal.php b/src/models/jsonld/Longitudinal.php index e1e17fc4d..61d07c76d 100644 --- a/src/models/jsonld/Longitudinal.php +++ b/src/models/jsonld/Longitudinal.php @@ -27,127 +27,127 @@ */ class Longitudinal extends MetaJsonLd implements LongitudinalInterface, MedicalObservationalStudyDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LongitudinalTrait; - use MedicalObservationalStudyDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Longitudinal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Longitudinal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Unlike cross-sectional studies, longitudinal studies track the same people, and therefore the differences observed in those people are less likely to be the result of cultural differences across generations. Longitudinal studies are also used in medicine to uncover predictors of certain diseases.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LongitudinalTrait; + use MedicalObservationalStudyDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Longitudinal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Longitudinal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Unlike cross-sectional studies, longitudinal studies track the same people, and therefore the differences observed in those people are less likely to be the result of cultural differences across generations. Longitudinal studies are also used in medicine to uncover predictors of certain diseases.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LoseAction.php b/src/models/jsonld/LoseAction.php index bf27244f6..819d29860 100644 --- a/src/models/jsonld/LoseAction.php +++ b/src/models/jsonld/LoseAction.php @@ -23,149 +23,149 @@ */ class LoseAction extends MetaJsonLd implements LoseActionInterface, AchieveActionInterface, ActionInterface, ThingInterface { - use LoseActionTrait; - use AchieveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LoseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LoseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AchieveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of being defeated in a competitive activity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'], - 'winner' => ['Person'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.', - 'winner' => 'A sub property of participant. The winner of the action.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LoseActionTrait; + use AchieveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LoseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LoseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AchieveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of being defeated in a competitive activity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + 'winner' => ['Person'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + 'winner' => 'A sub property of participant. The winner of the action.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LowCalorieDiet.php b/src/models/jsonld/LowCalorieDiet.php index 2f341b53e..5a363f32e 100644 --- a/src/models/jsonld/LowCalorieDiet.php +++ b/src/models/jsonld/LowCalorieDiet.php @@ -23,126 +23,126 @@ */ class LowCalorieDiet extends MetaJsonLd implements LowCalorieDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LowCalorieDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LowCalorieDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LowCalorieDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet focused on reduced calorie intake.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LowCalorieDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LowCalorieDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LowCalorieDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet focused on reduced calorie intake.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LowFatDiet.php b/src/models/jsonld/LowFatDiet.php index 95559c78f..b5bf1bce2 100644 --- a/src/models/jsonld/LowFatDiet.php +++ b/src/models/jsonld/LowFatDiet.php @@ -23,126 +23,126 @@ */ class LowFatDiet extends MetaJsonLd implements LowFatDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LowFatDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LowFatDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LowFatDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet focused on reduced fat and cholesterol intake.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LowFatDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LowFatDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LowFatDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet focused on reduced fat and cholesterol intake.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LowLactoseDiet.php b/src/models/jsonld/LowLactoseDiet.php index 1ead8609c..8d161f135 100644 --- a/src/models/jsonld/LowLactoseDiet.php +++ b/src/models/jsonld/LowLactoseDiet.php @@ -23,126 +23,126 @@ */ class LowLactoseDiet extends MetaJsonLd implements LowLactoseDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LowLactoseDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LowLactoseDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LowLactoseDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet appropriate for people with lactose intolerance.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LowLactoseDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LowLactoseDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LowLactoseDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet appropriate for people with lactose intolerance.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LowSaltDiet.php b/src/models/jsonld/LowSaltDiet.php index 14206c0bd..6ed27ac62 100644 --- a/src/models/jsonld/LowSaltDiet.php +++ b/src/models/jsonld/LowSaltDiet.php @@ -23,126 +23,126 @@ */ class LowSaltDiet extends MetaJsonLd implements LowSaltDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use LowSaltDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LowSaltDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LowSaltDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet focused on reduced sodium intake.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LowSaltDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LowSaltDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LowSaltDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet focused on reduced sodium intake.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Lung.php b/src/models/jsonld/Lung.php index ce024ea01..cf06eb71f 100644 --- a/src/models/jsonld/Lung.php +++ b/src/models/jsonld/Lung.php @@ -23,157 +23,157 @@ */ class Lung extends MetaJsonLd implements LungInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use LungTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Lung'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Lung'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Lung and respiratory system clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LungTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Lung'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Lung'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Lung and respiratory system clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/LymphaticVessel.php b/src/models/jsonld/LymphaticVessel.php index f6a4dfd06..657431277 100644 --- a/src/models/jsonld/LymphaticVessel.php +++ b/src/models/jsonld/LymphaticVessel.php @@ -24,162 +24,162 @@ */ class LymphaticVessel extends MetaJsonLd implements LymphaticVesselInterface, VesselInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use LymphaticVesselTrait; - use VesselTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'LymphaticVessel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/LymphaticVessel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Vessel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of blood vessel that specifically carries lymph fluid unidirectionally toward the heart.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'originatesFrom' => ['Vessel'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'regionDrained' => ['AnatomicalSystem', 'AnatomicalStructure'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'runsTo' => ['Vessel'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'originatesFrom' => 'The vasculature the lymphatic structure originates, or afferents, from.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'regionDrained' => 'The anatomical or organ system drained by this vessel; generally refers to a specific part of an organ.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'runsTo' => 'The vasculature the lymphatic structure runs, or efferents, to.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use LymphaticVesselTrait; + use VesselTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'LymphaticVessel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/LymphaticVessel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Vessel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of blood vessel that specifically carries lymph fluid unidirectionally toward the heart.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'originatesFrom' => ['Vessel'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'regionDrained' => ['AnatomicalSystem', 'AnatomicalStructure'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'runsTo' => ['Vessel'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'originatesFrom' => 'The vasculature the lymphatic structure originates, or afferents, from.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'regionDrained' => 'The anatomical or organ system drained by this vessel; generally refers to a specific part of an organ.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'runsTo' => 'The vasculature the lymphatic structure runs, or efferents, to.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MRI.php b/src/models/jsonld/MRI.php index bf975d300..30bf99d32 100644 --- a/src/models/jsonld/MRI.php +++ b/src/models/jsonld/MRI.php @@ -23,127 +23,127 @@ */ class MRI extends MetaJsonLd implements MRIInterface, MedicalImagingTechniqueInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MRITrait; - use MedicalImagingTechniqueTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MRI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MRI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Magnetic resonance imaging.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MRITrait; + use MedicalImagingTechniqueTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MRI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MRI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Magnetic resonance imaging.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MSRP.php b/src/models/jsonld/MSRP.php index df6e6c1ba..afe9122e0 100644 --- a/src/models/jsonld/MSRP.php +++ b/src/models/jsonld/MSRP.php @@ -24,126 +24,126 @@ */ class MSRP extends MetaJsonLd implements MSRPInterface, PriceTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MSRPTrait; - use PriceTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MSRP'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MSRP'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the manufacturer suggested retail price ("MSRP") of an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MSRPTrait; + use PriceTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MSRP'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MSRP'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the manufacturer suggested retail price ("MSRP") of an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Male.php b/src/models/jsonld/Male.php index f7f2a5fb5..3fb5d06e4 100644 --- a/src/models/jsonld/Male.php +++ b/src/models/jsonld/Male.php @@ -23,126 +23,126 @@ */ class Male extends MetaJsonLd implements MaleInterface, GenderTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MaleTrait; - use GenderTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Male'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Male'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GenderType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The male gender.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MaleTrait; + use GenderTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Male'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Male'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GenderType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The male gender.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Manuscript.php b/src/models/jsonld/Manuscript.php index 5fc20e3ad..729f641c4 100644 --- a/src/models/jsonld/Manuscript.php +++ b/src/models/jsonld/Manuscript.php @@ -24,346 +24,346 @@ */ class Manuscript extends MetaJsonLd implements ManuscriptInterface, CreativeWorkInterface, ThingInterface { - use ManuscriptTrait; - use CreativeWorkTrait; - use ThingTrait; + use ManuscriptTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Manuscript'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Manuscript'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Manuscript'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Manuscript'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A book, document, or piece of music written by hand rather than typed or printed.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A book, document, or piece of music written by hand rather than typed or printed.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Map.php b/src/models/jsonld/Map.php index 64af03721..eed230390 100644 --- a/src/models/jsonld/Map.php +++ b/src/models/jsonld/Map.php @@ -23,348 +23,348 @@ */ class Map extends MetaJsonLd implements MapInterface, CreativeWorkInterface, ThingInterface { - use MapTrait; - use CreativeWorkTrait; - use ThingTrait; + use MapTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Map'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Map'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Map'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Map'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A map.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A map.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'mapType' => ['MapCategoryType'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'mapType' => ['MapCategoryType'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'mapType' => 'Indicates the kind of Map, from the MapCategoryType Enumeration.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'mapType' => 'Indicates the kind of Map, from the MapCategoryType Enumeration.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MapCategoryType.php b/src/models/jsonld/MapCategoryType.php index af64edf93..c724dadf8 100644 --- a/src/models/jsonld/MapCategoryType.php +++ b/src/models/jsonld/MapCategoryType.php @@ -23,125 +23,125 @@ */ class MapCategoryType extends MetaJsonLd implements MapCategoryTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MapCategoryTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MapCategoryType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MapCategoryType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An enumeration of several kinds of Map.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MapCategoryTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MapCategoryType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MapCategoryType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An enumeration of several kinds of Map.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MarryAction.php b/src/models/jsonld/MarryAction.php index b71cf5fdc..0fe75c07f 100644 --- a/src/models/jsonld/MarryAction.php +++ b/src/models/jsonld/MarryAction.php @@ -23,147 +23,147 @@ */ class MarryAction extends MetaJsonLd implements MarryActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use MarryActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MarryAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MarryAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of marrying a person.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MarryActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MarryAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MarryAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of marrying a person.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Mass.php b/src/models/jsonld/Mass.php index 514360091..7423edbd8 100644 --- a/src/models/jsonld/Mass.php +++ b/src/models/jsonld/Mass.php @@ -24,123 +24,123 @@ */ class Mass extends MetaJsonLd implements MassInterface, QuantityInterface, IntangibleInterface, ThingInterface { - use MassTrait; - use QuantityTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Mass'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Mass'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Quantity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Properties that take Mass as values are of the form \' \'. E.g., \'7 kg\'.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MassTrait; + use QuantityTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Mass'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Mass'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Quantity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Properties that take Mass as values are of the form \' \'. E.g., \'7 kg\'.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MathSolver.php b/src/models/jsonld/MathSolver.php index 5bed4008e..7d69202b1 100644 --- a/src/models/jsonld/MathSolver.php +++ b/src/models/jsonld/MathSolver.php @@ -24,348 +24,348 @@ */ class MathSolver extends MetaJsonLd implements MathSolverInterface, CreativeWorkInterface, ThingInterface { - use MathSolverTrait; - use CreativeWorkTrait; - use ThingTrait; + use MathSolverTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MathSolver'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MathSolver'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MathSolver'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MathSolver'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A math solver which is capable of solving a subset of mathematical problems.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A math solver which is capable of solving a subset of mathematical problems.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mathExpression' => ['SolveMathAction', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mathExpression' => ['SolveMathAction', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mathExpression' => 'A mathematical expression (e.g. \'x^2-3x=0\') that may be solved for a specific variable, simplified, or transformed. This can take many formats, e.g. LaTeX, Ascii-Math, or math as you would write with a keyboard.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mathExpression' => 'A mathematical expression (e.g. \'x^2-3x=0\') that may be solved for a specific variable, simplified, or transformed. This can take many formats, e.g. LaTeX, Ascii-Math, or math as you would write with a keyboard.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MaximumDoseSchedule.php b/src/models/jsonld/MaximumDoseSchedule.php index 350938d9e..879d812cd 100644 --- a/src/models/jsonld/MaximumDoseSchedule.php +++ b/src/models/jsonld/MaximumDoseSchedule.php @@ -26,148 +26,148 @@ */ class MaximumDoseSchedule extends MetaJsonLd implements MaximumDoseScheduleInterface, DoseScheduleInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use MaximumDoseScheduleTrait; - use DoseScheduleTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MaximumDoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MaximumDoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DoseSchedule'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The maximum dosing schedule considered safe for a drug or supplement as recommended by an authority or by the drug/supplement\'s manufacturer. Capture the recommending authority in the recognizingAuthority property of MedicalEntity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseUnit' => ['Text'], - 'doseValue' => ['Number', 'QualitativeValue'], - 'frequency' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetPopulation' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', - 'doseValue' => 'The value of the dose, e.g. 500.', - 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MaximumDoseScheduleTrait; + use DoseScheduleTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MaximumDoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MaximumDoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DoseSchedule'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The maximum dosing schedule considered safe for a drug or supplement as recommended by an authority or by the drug/supplement\'s manufacturer. Capture the recommending authority in the recognizingAuthority property of MedicalEntity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseUnit' => ['Text'], + 'doseValue' => ['Number', 'QualitativeValue'], + 'frequency' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetPopulation' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', + 'doseValue' => 'The value of the dose, e.g. 500.', + 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MayTreatHealthAspect.php b/src/models/jsonld/MayTreatHealthAspect.php index cc2244008..97fe9f473 100644 --- a/src/models/jsonld/MayTreatHealthAspect.php +++ b/src/models/jsonld/MayTreatHealthAspect.php @@ -23,126 +23,126 @@ */ class MayTreatHealthAspect extends MetaJsonLd implements MayTreatHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MayTreatHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MayTreatHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MayTreatHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Related topics may be treated by a Topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MayTreatHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MayTreatHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MayTreatHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Related topics may be treated by a Topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MeasurementTypeEnumeration.php b/src/models/jsonld/MeasurementTypeEnumeration.php index 440454f27..836b5f1d4 100644 --- a/src/models/jsonld/MeasurementTypeEnumeration.php +++ b/src/models/jsonld/MeasurementTypeEnumeration.php @@ -25,125 +25,125 @@ */ class MeasurementTypeEnumeration extends MetaJsonLd implements MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumeration of common measurement types (or dimensions), for example "chest" for a person, "inseam" for pants, "gauge" for screws, or "wheel" for bicycles.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumeration of common measurement types (or dimensions), for example "chest" for a person, "inseam" for pants, "gauge" for screws, or "wheel" for bicycles.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MediaGallery.php b/src/models/jsonld/MediaGallery.php index 93960a71f..f6aea1690 100644 --- a/src/models/jsonld/MediaGallery.php +++ b/src/models/jsonld/MediaGallery.php @@ -24,368 +24,368 @@ */ class MediaGallery extends MetaJsonLd implements MediaGalleryInterface, CollectionPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use MediaGalleryTrait; - use CollectionPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use MediaGalleryTrait; + use CollectionPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MediaGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MediaGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MediaGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MediaGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CollectionPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CollectionPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Media gallery page. A mixed-media page that can contain media such as images, videos, and other multimedia.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Media gallery page. A mixed-media page that can contain media such as images, videos, and other multimedia.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MediaManipulationRatingEnumeration.php b/src/models/jsonld/MediaManipulationRatingEnumeration.php index 73286b9b8..3035f2c58 100644 --- a/src/models/jsonld/MediaManipulationRatingEnumeration.php +++ b/src/models/jsonld/MediaManipulationRatingEnumeration.php @@ -29,125 +29,125 @@ */ class MediaManipulationRatingEnumeration extends MetaJsonLd implements MediaManipulationRatingEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MediaManipulationRatingEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = ' Codes for use with the [[mediaAuthenticityCategory]] property, indicating the authenticity of a media object (in the context of how it was published or shared). In general these codes are not mutually exclusive, although some combinations (such as \'original\' versus \'transformed\', \'edited\' and \'staged\') would be contradictory if applied in the same [[MediaReview]]. Note that the application of these codes is with regard to a piece of media shared or published in a particular context.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MediaManipulationRatingEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = ' Codes for use with the [[mediaAuthenticityCategory]] property, indicating the authenticity of a media object (in the context of how it was published or shared). In general these codes are not mutually exclusive, although some combinations (such as \'original\' versus \'transformed\', \'edited\' and \'staged\') would be contradictory if applied in the same [[MediaReview]]. Note that the application of these codes is with regard to a piece of media shared or published in a particular context.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MediaObject.php b/src/models/jsonld/MediaObject.php index b85adb712..ef7198fb5 100644 --- a/src/models/jsonld/MediaObject.php +++ b/src/models/jsonld/MediaObject.php @@ -28,382 +28,382 @@ */ class MediaObject extends MetaJsonLd implements MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MediaObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MediaObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MediaObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MediaObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A media object, such as an image, video, or audio object embedded in a web page or a downloadable dataset, i.e. DataDownload. Note that a creative work may have many media objects associated with it on the same web page. For example, a page about a single song (MusicRecording) may have a music video (VideoObject), and a high and low bandwidth audio stream (2 [[AudioObject]]s).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A media object, such as an image, video, or audio object embedded in a web page or a downloadable dataset, i.e. DataDownload. Note that a creative work may have many media objects associated with it on the same web page. For example, a page about a single song (MusicRecording) may have a music video (VideoObject), and a high and low bandwidth audio stream (2 [[AudioObject]]s).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MediaReview.php b/src/models/jsonld/MediaReview.php index 1dbd7367a..a00d9d317 100644 --- a/src/models/jsonld/MediaReview.php +++ b/src/models/jsonld/MediaReview.php @@ -33,371 +33,371 @@ */ class MediaReview extends MetaJsonLd implements MediaReviewInterface, ReviewInterface, CreativeWorkInterface, ThingInterface { - use MediaReviewTrait; - use ReviewTrait; - use CreativeWorkTrait; - use ThingTrait; + use MediaReviewTrait; + use ReviewTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MediaReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MediaReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MediaReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MediaReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A [[MediaReview]] is a more specialized form of Review dedicated to the evaluation of media content online, typically in the context of fact-checking and misinformation.\n For more general reviews of media in the broader sense, use [[UserReview]], [[CriticReview]] or other [[Review]] types. This definition is\n a work in progress. While the [[MediaManipulationRatingEnumeration]] list reflects significant community review amongst fact-checkers and others working\n to combat misinformation, the specific structures for representing media objects, their versions and publication context, are still evolving. Similarly, best practices for the relationship between [[MediaReview]] and [[ClaimReview]] markup have not yet been finalized."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A [[MediaReview]] is a more specialized form of Review dedicated to the evaluation of media content online, typically in the context of fact-checking and misinformation.\n For more general reviews of media in the broader sense, use [[UserReview]], [[CriticReview]] or other [[Review]] types. This definition is\n a work in progress. While the [[MediaManipulationRatingEnumeration]] list reflects significant community review amongst fact-checkers and others working\n to combat misinformation, the specific structures for representing media objects, their versions and publication context, are still evolving. Similarly, best practices for the relationship between [[MediaReview]] and [[ClaimReview]] markup have not yet been finalized."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mediaAuthenticityCategory' => ['MediaManipulationRatingEnumeration'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'originalMediaContextDescription' => ['Text'], - 'originalMediaLink' => ['WebPage', 'MediaObject', 'URL'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mediaAuthenticityCategory' => ['MediaManipulationRatingEnumeration'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'originalMediaContextDescription' => ['Text'], + 'originalMediaLink' => ['WebPage', 'MediaObject', 'URL'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mediaAuthenticityCategory' => 'Indicates a MediaManipulationRatingEnumeration classification of a media object (in the context of how it was published or shared).', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'originalMediaContextDescription' => 'Describes, in a [[MediaReview]] when dealing with [[DecontextualizedContent]], background information that can contribute to better interpretation of the [[MediaObject]].', - 'originalMediaLink' => 'Link to the page containing an original version of the content, or directly to an online copy of the original [[MediaObject]] content, e.g. video file.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mediaAuthenticityCategory' => 'Indicates a MediaManipulationRatingEnumeration classification of a media object (in the context of how it was published or shared).', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'originalMediaContextDescription' => 'Describes, in a [[MediaReview]] when dealing with [[DecontextualizedContent]], background information that can contribute to better interpretation of the [[MediaObject]].', + 'originalMediaLink' => 'Link to the page containing an original version of the content, or directly to an online copy of the original [[MediaObject]] content, e.g. video file.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MediaReviewItem.php b/src/models/jsonld/MediaReviewItem.php index d922c2528..6686c44e1 100644 --- a/src/models/jsonld/MediaReviewItem.php +++ b/src/models/jsonld/MediaReviewItem.php @@ -25,348 +25,348 @@ */ class MediaReviewItem extends MetaJsonLd implements MediaReviewItemInterface, CreativeWorkInterface, ThingInterface { - use MediaReviewItemTrait; - use CreativeWorkTrait; - use ThingTrait; + use MediaReviewItemTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MediaReviewItem'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MediaReviewItem'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MediaReviewItem'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MediaReviewItem'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents an item or group of closely related items treated as a unit for the sake of evaluation in a [[MediaReview]]. Authorship etc. apply to the items rather than to the curation/grouping or reviewing party.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents an item or group of closely related items treated as a unit for the sake of evaluation in a [[MediaReview]]. Authorship etc. apply to the items rather than to the curation/grouping or reviewing party.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mediaItemAppearance' => ['MediaObject'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mediaItemAppearance' => ['MediaObject'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mediaItemAppearance' => 'In the context of a [[MediaReview]], indicates specific media item(s) that are grouped using a [[MediaReviewItem]].', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mediaItemAppearance' => 'In the context of a [[MediaReview]], indicates specific media item(s) that are grouped using a [[MediaReviewItem]].', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MediaSubscription.php b/src/models/jsonld/MediaSubscription.php index 619f032a8..26a306546 100644 --- a/src/models/jsonld/MediaSubscription.php +++ b/src/models/jsonld/MediaSubscription.php @@ -24,126 +24,126 @@ */ class MediaSubscription extends MetaJsonLd implements MediaSubscriptionInterface, IntangibleInterface, ThingInterface { - use MediaSubscriptionTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MediaSubscription'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MediaSubscription'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A subscription which allows a user to access media including audio, video, books, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'authenticator' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'authenticator' => 'The Organization responsible for authenticating the user\'s subscription. For example, many media apps require a cable/satellite provider to authenticate your subscription before playing media.', - 'description' => 'A description of the item.', - '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.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MediaSubscriptionTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MediaSubscription'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MediaSubscription'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A subscription which allows a user to access media including audio, video, books, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'authenticator' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'authenticator' => 'The Organization responsible for authenticating the user\'s subscription. For example, many media apps require a cable/satellite provider to authenticate your subscription before playing media.', + 'description' => 'A description of the item.', + '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.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalAudience.php b/src/models/jsonld/MedicalAudience.php index e6de269fb..e513c9366 100644 --- a/src/models/jsonld/MedicalAudience.php +++ b/src/models/jsonld/MedicalAudience.php @@ -23,146 +23,146 @@ */ class MedicalAudience extends MetaJsonLd implements MedicalAudienceInterface, PeopleAudienceInterface, AudienceInterface, IntangibleInterface, ThingInterface { - use MedicalAudienceTrait; - use PeopleAudienceTrait; - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PeopleAudience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Target audiences for medical web pages.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'audienceType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'geographicArea' => ['AdministrativeArea'], - 'healthCondition' => ['MedicalCondition'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'requiredGender' => ['Text'], - 'requiredMaxAge' => ['Integer'], - 'requiredMinAge' => ['Integer'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suggestedAge' => ['QuantitativeValue'], - 'suggestedGender' => ['GenderType', 'Text'], - 'suggestedMaxAge' => ['Number'], - 'suggestedMeasurement' => ['QuantitativeValue'], - 'suggestedMinAge' => ['Number'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'description' => 'A description of the item.', - '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.', - 'geographicArea' => 'The geographic area associated with the audience.', - 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'requiredGender' => 'Audiences defined by a person\'s gender.', - 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', - 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', - 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', - 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', - 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', - 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalAudienceTrait; + use PeopleAudienceTrait; + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PeopleAudience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Target audiences for medical web pages.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'audienceType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'geographicArea' => ['AdministrativeArea'], + 'healthCondition' => ['MedicalCondition'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'requiredGender' => ['Text'], + 'requiredMaxAge' => ['Integer'], + 'requiredMinAge' => ['Integer'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suggestedAge' => ['QuantitativeValue'], + 'suggestedGender' => ['GenderType', 'Text'], + 'suggestedMaxAge' => ['Number'], + 'suggestedMeasurement' => ['QuantitativeValue'], + 'suggestedMinAge' => ['Number'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'description' => 'A description of the item.', + '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.', + 'geographicArea' => 'The geographic area associated with the audience.', + 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'requiredGender' => 'Audiences defined by a person\'s gender.', + 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', + 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', + 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', + 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', + 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', + 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalAudienceType.php b/src/models/jsonld/MedicalAudienceType.php index 78aadd4c1..33010c93c 100644 --- a/src/models/jsonld/MedicalAudienceType.php +++ b/src/models/jsonld/MedicalAudienceType.php @@ -23,126 +23,126 @@ */ class MedicalAudienceType extends MetaJsonLd implements MedicalAudienceTypeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalAudienceTypeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalAudienceType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalAudienceType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Target audiences types for medical web pages. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalAudienceTypeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalAudienceType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalAudienceType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Target audiences types for medical web pages. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalBusiness.php b/src/models/jsonld/MedicalBusiness.php index 6b0eac53e..eda2943c3 100644 --- a/src/models/jsonld/MedicalBusiness.php +++ b/src/models/jsonld/MedicalBusiness.php @@ -25,330 +25,330 @@ */ class MedicalBusiness extends MetaJsonLd implements MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A particular physical or virtual business of an organization for medical purposes. Examples of MedicalBusiness include different businesses run by health professionals.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MedicalCause.php b/src/models/jsonld/MedicalCause.php index 1ff12b564..76bc66035 100644 --- a/src/models/jsonld/MedicalCause.php +++ b/src/models/jsonld/MedicalCause.php @@ -38,140 +38,140 @@ */ class MedicalCause extends MetaJsonLd implements MedicalCauseInterface, MedicalEntityInterface, ThingInterface { - use MedicalCauseTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalCause'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalCause'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The causative agent(s) that are responsible for the pathophysiologic process that eventually results in a medical condition, symptom or sign. In this schema, unless otherwise specified this is meant to be the proximate cause of the medical condition, symptom or sign. The proximate cause is defined as the causative agent that most directly results in the medical condition, symptom or sign. For example, the HIV virus could be considered a cause of AIDS. Or in a diagnostic context, if a patient fell and sustained a hip fracture and two days later sustained a pulmonary embolism which eventuated in a cardiac arrest, the cause of the cardiac arrest (the proximate cause) would be the pulmonary embolism and not the fall. Medical causes can include cardiovascular, chemical, dermatologic, endocrine, environmental, gastroenterologic, genetic, hematologic, gynecologic, iatrogenic, infectious, musculoskeletal, neurologic, nutritional, obstetric, oncologic, otolaryngologic, pharmacologic, psychiatric, pulmonary, renal, rheumatologic, toxic, traumatic, or urologic causes; medical conditions can be causes as well.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'causeOf' => ['MedicalEntity'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'causeOf' => 'The condition, complication, symptom, sign, etc. caused.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalCauseTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalCause'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalCause'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The causative agent(s) that are responsible for the pathophysiologic process that eventually results in a medical condition, symptom or sign. In this schema, unless otherwise specified this is meant to be the proximate cause of the medical condition, symptom or sign. The proximate cause is defined as the causative agent that most directly results in the medical condition, symptom or sign. For example, the HIV virus could be considered a cause of AIDS. Or in a diagnostic context, if a patient fell and sustained a hip fracture and two days later sustained a pulmonary embolism which eventuated in a cardiac arrest, the cause of the cardiac arrest (the proximate cause) would be the pulmonary embolism and not the fall. Medical causes can include cardiovascular, chemical, dermatologic, endocrine, environmental, gastroenterologic, genetic, hematologic, gynecologic, iatrogenic, infectious, musculoskeletal, neurologic, nutritional, obstetric, oncologic, otolaryngologic, pharmacologic, psychiatric, pulmonary, renal, rheumatologic, toxic, traumatic, or urologic causes; medical conditions can be causes as well.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'causeOf' => ['MedicalEntity'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'causeOf' => 'The condition, complication, symptom, sign, etc. caused.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalClinic.php b/src/models/jsonld/MedicalClinic.php index 51c485f39..e8f29615f 100644 --- a/src/models/jsonld/MedicalClinic.php +++ b/src/models/jsonld/MedicalClinic.php @@ -25,340 +25,340 @@ */ class MedicalClinic extends MetaJsonLd implements MedicalClinicInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalOrganizationInterface { - use MedicalClinicTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalOrganizationTrait; + use MedicalClinicTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalOrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalClinic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalClinic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalClinic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalClinic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A facility, often associated with a hospital or medical school, that is devoted to the specific diagnosis and/or healthcare. Previously limited to outpatients but with evolution it may be open to inpatients as well.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A facility, often associated with a hospital or medical school, that is devoted to the specific diagnosis and/or healthcare. Previously limited to outpatients but with evolution it may be open to inpatients as well.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'availableService' => 'A medical service available from this provider.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'availableService' => 'A medical service available from this provider.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MedicalCode.php b/src/models/jsonld/MedicalCode.php index bc7b487cb..50cb9e67c 100644 --- a/src/models/jsonld/MedicalCode.php +++ b/src/models/jsonld/MedicalCode.php @@ -23,152 +23,152 @@ */ class MedicalCode extends MetaJsonLd implements MedicalCodeInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface, CategoryCodeInterface, DefinedTermInterface, IntangibleInterface { - use MedicalCodeTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - use CategoryCodeTrait; - use DefinedTermTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalCode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalCode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A code for a medical entity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'codeValue' => ['Text'], - 'codingSystem' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inCodeSet' => ['URL', 'CategoryCodeSet'], - 'inDefinedTermSet' => ['DefinedTermSet', 'URL'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termCode' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'codeValue' => 'A short textual code that uniquely identifies the value.', - 'codingSystem' => 'The coding system, e.g. \'ICD-10\'.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inCodeSet' => 'A [[CategoryCodeSet]] that contains this category code.', - 'inDefinedTermSet' => 'A [[DefinedTermSet]] that contains this term.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termCode' => 'A code that identifies this [[DefinedTerm]] within a [[DefinedTermSet]]', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalCodeTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + use CategoryCodeTrait; + use DefinedTermTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalCode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalCode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A code for a medical entity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'codeValue' => ['Text'], + 'codingSystem' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inCodeSet' => ['URL', 'CategoryCodeSet'], + 'inDefinedTermSet' => ['DefinedTermSet', 'URL'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termCode' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'codeValue' => 'A short textual code that uniquely identifies the value.', + 'codingSystem' => 'The coding system, e.g. \'ICD-10\'.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inCodeSet' => 'A [[CategoryCodeSet]] that contains this category code.', + 'inDefinedTermSet' => 'A [[DefinedTermSet]] that contains this term.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termCode' => 'A code that identifies this [[DefinedTerm]] within a [[DefinedTermSet]]', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalCondition.php b/src/models/jsonld/MedicalCondition.php index 368efbcf5..75e8fd1f8 100644 --- a/src/models/jsonld/MedicalCondition.php +++ b/src/models/jsonld/MedicalCondition.php @@ -25,170 +25,170 @@ */ class MedicalCondition extends MetaJsonLd implements MedicalConditionInterface, MedicalEntityInterface, ThingInterface { - use MedicalConditionTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any condition of the human body that affects the normal functioning of a person, whether physically or mentally. Includes diseases, injuries, disabilities, disorders, syndromes, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'differentialDiagnosis' => ['DDxElement'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'epidemiology' => ['Text'], - 'expectedPrognosis' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'naturalProgression' => ['Text'], - 'pathophysiology' => ['Text'], - 'possibleComplication' => ['Text'], - 'possibleTreatment' => ['MedicalTherapy'], - 'potentialAction' => ['Action'], - 'primaryPrevention' => ['MedicalTherapy'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'riskFactor' => ['MedicalRiskFactor'], - 'sameAs' => ['URL'], - 'secondaryPrevention' => ['MedicalTherapy'], - 'signOrSymptom' => ['MedicalSignOrSymptom'], - 'stage' => ['MedicalConditionStage'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typicalTest' => ['MedicalTest'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', - 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', - '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.', - 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', - 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', - 'stage' => 'The stage of the condition, if applicable.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typicalTest' => 'A medical test typically performed given this condition.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalConditionTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any condition of the human body that affects the normal functioning of a person, whether physically or mentally. Includes diseases, injuries, disabilities, disorders, syndromes, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'differentialDiagnosis' => ['DDxElement'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'epidemiology' => ['Text'], + 'expectedPrognosis' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'naturalProgression' => ['Text'], + 'pathophysiology' => ['Text'], + 'possibleComplication' => ['Text'], + 'possibleTreatment' => ['MedicalTherapy'], + 'potentialAction' => ['Action'], + 'primaryPrevention' => ['MedicalTherapy'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'riskFactor' => ['MedicalRiskFactor'], + 'sameAs' => ['URL'], + 'secondaryPrevention' => ['MedicalTherapy'], + 'signOrSymptom' => ['MedicalSignOrSymptom'], + 'stage' => ['MedicalConditionStage'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typicalTest' => ['MedicalTest'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', + 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', + '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.', + 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', + 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', + 'stage' => 'The stage of the condition, if applicable.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typicalTest' => 'A medical test typically performed given this condition.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalConditionStage.php b/src/models/jsonld/MedicalConditionStage.php index 726592ab1..83a21b491 100644 --- a/src/models/jsonld/MedicalConditionStage.php +++ b/src/models/jsonld/MedicalConditionStage.php @@ -23,143 +23,143 @@ */ class MedicalConditionStage extends MetaJsonLd implements MedicalConditionStageInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use MedicalConditionStageTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalConditionStage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalConditionStage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIntangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A stage of a medical condition, such as \'Stage IIIa\'.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'stageAsNumber' => ['Number'], - 'study' => ['MedicalStudy'], - 'subStageSuffix' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'stageAsNumber' => 'The stage represented as a number, e.g. 3.', - 'study' => 'A medical study or trial related to this entity.', - 'subStageSuffix' => 'The substage, e.g. \'a\' for Stage IIIa.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalConditionStageTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalConditionStage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalConditionStage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIntangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A stage of a medical condition, such as \'Stage IIIa\'.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'stageAsNumber' => ['Number'], + 'study' => ['MedicalStudy'], + 'subStageSuffix' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'stageAsNumber' => 'The stage represented as a number, e.g. 3.', + 'study' => 'A medical study or trial related to this entity.', + 'subStageSuffix' => 'The substage, e.g. \'a\' for Stage IIIa.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalContraindication.php b/src/models/jsonld/MedicalContraindication.php index da0594250..69278a250 100644 --- a/src/models/jsonld/MedicalContraindication.php +++ b/src/models/jsonld/MedicalContraindication.php @@ -27,138 +27,138 @@ */ class MedicalContraindication extends MetaJsonLd implements MedicalContraindicationInterface, MedicalEntityInterface, ThingInterface { - use MedicalContraindicationTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalContraindication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalContraindication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A condition or factor that serves as a reason to withhold a certain medical therapy. Contraindications can be absolute (there are no reasonable circumstances for undertaking a course of action) or relative (the patient is at higher risk of complications, but these risks may be outweighed by other considerations or mitigated by other measures).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalContraindicationTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalContraindication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalContraindication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A condition or factor that serves as a reason to withhold a certain medical therapy. Contraindications can be absolute (there are no reasonable circumstances for undertaking a course of action) or relative (the patient is at higher risk of complications, but these risks may be outweighed by other considerations or mitigated by other measures).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalDevice.php b/src/models/jsonld/MedicalDevice.php index e8e071c13..798be03dc 100644 --- a/src/models/jsonld/MedicalDevice.php +++ b/src/models/jsonld/MedicalDevice.php @@ -24,150 +24,150 @@ */ class MedicalDevice extends MetaJsonLd implements MedicalDeviceInterface, MedicalEntityInterface, ThingInterface { - use MedicalDeviceTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalDevice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalDevice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any object used in a medical capacity, such as to diagnose or treat a patient.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'contraindication' => ['Text', 'MedicalContraindication'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'postOp' => ['Text'], - 'potentialAction' => ['Action'], - 'preOp' => ['Text'], - 'procedure' => ['Text'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'seriousAdverseOutcome' => ['MedicalEntity'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'contraindication' => 'A contraindication for this therapy.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'postOp' => 'A description of the postoperative procedures, care, and/or followups for this device.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preOp' => 'A description of the workup, testing, and other preparations required before implanting this device.', - 'procedure' => 'A description of the procedure involved in setting up, using, and/or installing the device.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalDeviceTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalDevice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalDevice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any object used in a medical capacity, such as to diagnose or treat a patient.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'contraindication' => ['Text', 'MedicalContraindication'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'postOp' => ['Text'], + 'potentialAction' => ['Action'], + 'preOp' => ['Text'], + 'procedure' => ['Text'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'seriousAdverseOutcome' => ['MedicalEntity'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'contraindication' => 'A contraindication for this therapy.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'postOp' => 'A description of the postoperative procedures, care, and/or followups for this device.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preOp' => 'A description of the workup, testing, and other preparations required before implanting this device.', + 'procedure' => 'A description of the procedure involved in setting up, using, and/or installing the device.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalDevicePurpose.php b/src/models/jsonld/MedicalDevicePurpose.php index a5635eb43..b4612e297 100644 --- a/src/models/jsonld/MedicalDevicePurpose.php +++ b/src/models/jsonld/MedicalDevicePurpose.php @@ -24,126 +24,126 @@ */ class MedicalDevicePurpose extends MetaJsonLd implements MedicalDevicePurposeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalDevicePurposeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalDevicePurpose'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalDevicePurpose'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Categories of medical devices, organized by the purpose or intended use of the device.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalDevicePurposeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalDevicePurpose'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalDevicePurpose'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Categories of medical devices, organized by the purpose or intended use of the device.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalEntity.php b/src/models/jsonld/MedicalEntity.php index f9b96b1ec..6a4b29a62 100644 --- a/src/models/jsonld/MedicalEntity.php +++ b/src/models/jsonld/MedicalEntity.php @@ -24,137 +24,137 @@ */ class MedicalEntity extends MetaJsonLd implements MedicalEntityInterface, ThingInterface { - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalEntity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalEntity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The most generic type of entity related to health and the practice of medicine.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalEntity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalEntity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The most generic type of entity related to health and the practice of medicine.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalEnumeration.php b/src/models/jsonld/MedicalEnumeration.php index eed0ee2fe..4f07173d8 100644 --- a/src/models/jsonld/MedicalEnumeration.php +++ b/src/models/jsonld/MedicalEnumeration.php @@ -26,125 +26,125 @@ */ class MedicalEnumeration extends MetaJsonLd implements MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerations related to health and the practice of medicine: A concept that is used to attribute a quality to another concept, as a qualifier, a collection of items or a listing of all of the elements of a set in medicine practice.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerations related to health and the practice of medicine: A concept that is used to attribute a quality to another concept, as a qualifier, a collection of items or a listing of all of the elements of a set in medicine practice.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalEvidenceLevel.php b/src/models/jsonld/MedicalEvidenceLevel.php index e6cad37a0..2dc5f8b17 100644 --- a/src/models/jsonld/MedicalEvidenceLevel.php +++ b/src/models/jsonld/MedicalEvidenceLevel.php @@ -23,126 +23,126 @@ */ class MedicalEvidenceLevel extends MetaJsonLd implements MedicalEvidenceLevelInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalEvidenceLevelTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalEvidenceLevel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalEvidenceLevel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Level of evidence for a medical guideline. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalEvidenceLevelTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalEvidenceLevel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalEvidenceLevel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Level of evidence for a medical guideline. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalGuideline.php b/src/models/jsonld/MedicalGuideline.php index 650f37522..7e9360194 100644 --- a/src/models/jsonld/MedicalGuideline.php +++ b/src/models/jsonld/MedicalGuideline.php @@ -29,146 +29,146 @@ */ class MedicalGuideline extends MetaJsonLd implements MedicalGuidelineInterface, MedicalEntityInterface, ThingInterface { - use MedicalGuidelineTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalGuideline'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalGuideline'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any recommendation made by a standard society (e.g. ACC/AHA) or consensus statement that denotes how to diagnose and treat a particular condition. Note: this type should be used to tag the actual guideline recommendation; if the guideline recommendation occurs in a larger scholarly article, use MedicalScholarlyArticle to tag the overall article, not this type. Note also: the organization making the recommendation should be captured in the recognizingAuthority base property of MedicalEntity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'evidenceLevel' => ['MedicalEvidenceLevel'], - 'evidenceOrigin' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'guidelineDate' => ['Date'], - 'guidelineSubject' => ['MedicalEntity'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'evidenceLevel' => 'Strength of evidence of the data used to formulate the guideline (enumerated).', - 'evidenceOrigin' => 'Source of the data used to formulate the guidance, e.g. RCT, consensus opinion, etc.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'guidelineDate' => 'Date on which this guideline\'s recommendation was made.', - 'guidelineSubject' => 'The medical conditions, treatments, etc. that are the subject of the guideline.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalGuidelineTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalGuideline'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalGuideline'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any recommendation made by a standard society (e.g. ACC/AHA) or consensus statement that denotes how to diagnose and treat a particular condition. Note: this type should be used to tag the actual guideline recommendation; if the guideline recommendation occurs in a larger scholarly article, use MedicalScholarlyArticle to tag the overall article, not this type. Note also: the organization making the recommendation should be captured in the recognizingAuthority base property of MedicalEntity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'evidenceLevel' => ['MedicalEvidenceLevel'], + 'evidenceOrigin' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'guidelineDate' => ['Date'], + 'guidelineSubject' => ['MedicalEntity'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'evidenceLevel' => 'Strength of evidence of the data used to formulate the guideline (enumerated).', + 'evidenceOrigin' => 'Source of the data used to formulate the guidance, e.g. RCT, consensus opinion, etc.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'guidelineDate' => 'Date on which this guideline\'s recommendation was made.', + 'guidelineSubject' => 'The medical conditions, treatments, etc. that are the subject of the guideline.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalGuidelineContraindication.php b/src/models/jsonld/MedicalGuidelineContraindication.php index 5a45df316..b58886d7f 100644 --- a/src/models/jsonld/MedicalGuidelineContraindication.php +++ b/src/models/jsonld/MedicalGuidelineContraindication.php @@ -24,147 +24,147 @@ */ class MedicalGuidelineContraindication extends MetaJsonLd implements MedicalGuidelineContraindicationInterface, MedicalGuidelineInterface, MedicalEntityInterface, ThingInterface { - use MedicalGuidelineContraindicationTrait; - use MedicalGuidelineTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalGuidelineContraindication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalGuidelineContraindication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalGuideline'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A guideline contraindication that designates a process as harmful and where quality of the data supporting the contraindication is sound.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'evidenceLevel' => ['MedicalEvidenceLevel'], - 'evidenceOrigin' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'guidelineDate' => ['Date'], - 'guidelineSubject' => ['MedicalEntity'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'evidenceLevel' => 'Strength of evidence of the data used to formulate the guideline (enumerated).', - 'evidenceOrigin' => 'Source of the data used to formulate the guidance, e.g. RCT, consensus opinion, etc.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'guidelineDate' => 'Date on which this guideline\'s recommendation was made.', - 'guidelineSubject' => 'The medical conditions, treatments, etc. that are the subject of the guideline.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalGuidelineContraindicationTrait; + use MedicalGuidelineTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalGuidelineContraindication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalGuidelineContraindication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalGuideline'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A guideline contraindication that designates a process as harmful and where quality of the data supporting the contraindication is sound.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'evidenceLevel' => ['MedicalEvidenceLevel'], + 'evidenceOrigin' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'guidelineDate' => ['Date'], + 'guidelineSubject' => ['MedicalEntity'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'evidenceLevel' => 'Strength of evidence of the data used to formulate the guideline (enumerated).', + 'evidenceOrigin' => 'Source of the data used to formulate the guidance, e.g. RCT, consensus opinion, etc.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'guidelineDate' => 'Date on which this guideline\'s recommendation was made.', + 'guidelineSubject' => 'The medical conditions, treatments, etc. that are the subject of the guideline.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalGuidelineRecommendation.php b/src/models/jsonld/MedicalGuidelineRecommendation.php index f0becc442..91d96d650 100644 --- a/src/models/jsonld/MedicalGuidelineRecommendation.php +++ b/src/models/jsonld/MedicalGuidelineRecommendation.php @@ -24,149 +24,149 @@ */ class MedicalGuidelineRecommendation extends MetaJsonLd implements MedicalGuidelineRecommendationInterface, MedicalGuidelineInterface, MedicalEntityInterface, ThingInterface { - use MedicalGuidelineRecommendationTrait; - use MedicalGuidelineTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalGuidelineRecommendation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalGuidelineRecommendation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalGuideline'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A guideline recommendation that is regarded as efficacious and where quality of the data supporting the recommendation is sound.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'evidenceLevel' => ['MedicalEvidenceLevel'], - 'evidenceOrigin' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'guidelineDate' => ['Date'], - 'guidelineSubject' => ['MedicalEntity'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'recommendationStrength' => ['Text'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'evidenceLevel' => 'Strength of evidence of the data used to formulate the guideline (enumerated).', - 'evidenceOrigin' => 'Source of the data used to formulate the guidance, e.g. RCT, consensus opinion, etc.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'guidelineDate' => 'Date on which this guideline\'s recommendation was made.', - 'guidelineSubject' => 'The medical conditions, treatments, etc. that are the subject of the guideline.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'recommendationStrength' => 'Strength of the guideline\'s recommendation (e.g. \'class I\').', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalGuidelineRecommendationTrait; + use MedicalGuidelineTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalGuidelineRecommendation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalGuidelineRecommendation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalGuideline'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A guideline recommendation that is regarded as efficacious and where quality of the data supporting the recommendation is sound.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'evidenceLevel' => ['MedicalEvidenceLevel'], + 'evidenceOrigin' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'guidelineDate' => ['Date'], + 'guidelineSubject' => ['MedicalEntity'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'recommendationStrength' => ['Text'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'evidenceLevel' => 'Strength of evidence of the data used to formulate the guideline (enumerated).', + 'evidenceOrigin' => 'Source of the data used to formulate the guidance, e.g. RCT, consensus opinion, etc.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'guidelineDate' => 'Date on which this guideline\'s recommendation was made.', + 'guidelineSubject' => 'The medical conditions, treatments, etc. that are the subject of the guideline.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'recommendationStrength' => 'Strength of the guideline\'s recommendation (e.g. \'class I\').', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalImagingTechnique.php b/src/models/jsonld/MedicalImagingTechnique.php index 0ec070311..ab703679a 100644 --- a/src/models/jsonld/MedicalImagingTechnique.php +++ b/src/models/jsonld/MedicalImagingTechnique.php @@ -24,126 +24,126 @@ */ class MedicalImagingTechnique extends MetaJsonLd implements MedicalImagingTechniqueInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalImagingTechniqueTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalImagingTechnique'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any medical imaging modality typically used for diagnostic purposes. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalImagingTechniqueTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalImagingTechnique'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any medical imaging modality typically used for diagnostic purposes. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalIndication.php b/src/models/jsonld/MedicalIndication.php index 786f504fa..9780cfdee 100644 --- a/src/models/jsonld/MedicalIndication.php +++ b/src/models/jsonld/MedicalIndication.php @@ -24,138 +24,138 @@ */ class MedicalIndication extends MetaJsonLd implements MedicalIndicationInterface, MedicalEntityInterface, ThingInterface { - use MedicalIndicationTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A condition or factor that indicates use of a medical therapy, including signs, symptoms, risk factors, anatomical states, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalIndicationTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A condition or factor that indicates use of a medical therapy, including signs, symptoms, risk factors, anatomical states, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalIntangible.php b/src/models/jsonld/MedicalIntangible.php index ec0c14ebe..b3082998f 100644 --- a/src/models/jsonld/MedicalIntangible.php +++ b/src/models/jsonld/MedicalIntangible.php @@ -24,138 +24,138 @@ */ class MedicalIntangible extends MetaJsonLd implements MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalIntangible'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalIntangible'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A utility class that serves as the umbrella for a number of \'intangible\' things in the medical space.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalIntangible'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalIntangible'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A utility class that serves as the umbrella for a number of \'intangible\' things in the medical space.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalObservationalStudy.php b/src/models/jsonld/MedicalObservationalStudy.php index c0b8aa28a..7ddecf67b 100644 --- a/src/models/jsonld/MedicalObservationalStudy.php +++ b/src/models/jsonld/MedicalObservationalStudy.php @@ -30,151 +30,151 @@ */ class MedicalObservationalStudy extends MetaJsonLd implements MedicalObservationalStudyInterface, MedicalStudyInterface, MedicalEntityInterface, ThingInterface { - use MedicalObservationalStudyTrait; - use MedicalStudyTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalObservationalStudy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalObservationalStudy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An observational study is a type of medical study that attempts to infer the possible effect of a treatment through observation of a cohort of subjects over a period of time. In an observational study, the assignment of subjects into treatment groups versus control groups is outside the control of the investigator. This is in contrast with controlled studies, such as the randomized controlled trials represented by MedicalTrial, where each subject is randomly assigned to a treatment group or a control group before the start of the treatment.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'healthCondition' => ['MedicalCondition'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'studyDesign' => ['MedicalObservationalStudyDesign'], - 'studyLocation' => ['AdministrativeArea'], - 'studySubject' => ['MedicalEntity'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'studyDesign' => 'Specifics about the observational study design (enumerated).', - 'studyLocation' => 'The location in which the study is taking/took place.', - 'studySubject' => 'A subject of the study, i.e. one of the medical conditions, therapies, devices, drugs, etc. investigated by the study.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalObservationalStudyTrait; + use MedicalStudyTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalObservationalStudy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalObservationalStudy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An observational study is a type of medical study that attempts to infer the possible effect of a treatment through observation of a cohort of subjects over a period of time. In an observational study, the assignment of subjects into treatment groups versus control groups is outside the control of the investigator. This is in contrast with controlled studies, such as the randomized controlled trials represented by MedicalTrial, where each subject is randomly assigned to a treatment group or a control group before the start of the treatment.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'healthCondition' => ['MedicalCondition'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'studyDesign' => ['MedicalObservationalStudyDesign'], + 'studyLocation' => ['AdministrativeArea'], + 'studySubject' => ['MedicalEntity'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'studyDesign' => 'Specifics about the observational study design (enumerated).', + 'studyLocation' => 'The location in which the study is taking/took place.', + 'studySubject' => 'A subject of the study, i.e. one of the medical conditions, therapies, devices, drugs, etc. investigated by the study.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalObservationalStudyDesign.php b/src/models/jsonld/MedicalObservationalStudyDesign.php index 2b98f2967..bdff5d7e4 100644 --- a/src/models/jsonld/MedicalObservationalStudyDesign.php +++ b/src/models/jsonld/MedicalObservationalStudyDesign.php @@ -23,126 +23,126 @@ */ class MedicalObservationalStudyDesign extends MetaJsonLd implements MedicalObservationalStudyDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalObservationalStudyDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Design models for observational medical studies. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalObservationalStudyDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Design models for observational medical studies. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalOrganization.php b/src/models/jsonld/MedicalOrganization.php index 64da30bde..cea15e27b 100644 --- a/src/models/jsonld/MedicalOrganization.php +++ b/src/models/jsonld/MedicalOrganization.php @@ -24,260 +24,260 @@ */ class MedicalOrganization extends MetaJsonLd implements MedicalOrganizationInterface, OrganizationInterface, ThingInterface { - use MedicalOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use MedicalOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical organization (physical or not), such as hospital, institution or clinic.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical organization (physical or not), such as hospital, institution or clinic.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MedicalProcedure.php b/src/models/jsonld/MedicalProcedure.php index 3c6303e88..d9daf00d3 100644 --- a/src/models/jsonld/MedicalProcedure.php +++ b/src/models/jsonld/MedicalProcedure.php @@ -25,150 +25,150 @@ */ class MedicalProcedure extends MetaJsonLd implements MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A process of care used in either a diagnostic, therapeutic, preventive or palliative capacity that relies on invasive (surgical), non-invasive, or other techniques.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalProcedureType.php b/src/models/jsonld/MedicalProcedureType.php index c64f8e466..d1ccbff65 100644 --- a/src/models/jsonld/MedicalProcedureType.php +++ b/src/models/jsonld/MedicalProcedureType.php @@ -23,126 +23,126 @@ */ class MedicalProcedureType extends MetaJsonLd implements MedicalProcedureTypeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalProcedureTypeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalProcedureType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalProcedureType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An enumeration that describes different types of medical procedures.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalProcedureTypeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalProcedureType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalProcedureType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An enumeration that describes different types of medical procedures.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalResearcher.php b/src/models/jsonld/MedicalResearcher.php index 1b65e8b9b..4424caab6 100644 --- a/src/models/jsonld/MedicalResearcher.php +++ b/src/models/jsonld/MedicalResearcher.php @@ -23,127 +23,127 @@ */ class MedicalResearcher extends MetaJsonLd implements MedicalResearcherInterface, MedicalAudienceTypeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalResearcherTrait; - use MedicalAudienceTypeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalResearcher'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalResearcher'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalAudienceType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Medical researchers.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalResearcherTrait; + use MedicalAudienceTypeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalResearcher'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalResearcher'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalAudienceType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Medical researchers.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalRiskCalculator.php b/src/models/jsonld/MedicalRiskCalculator.php index f320d4566..67dbdbe14 100644 --- a/src/models/jsonld/MedicalRiskCalculator.php +++ b/src/models/jsonld/MedicalRiskCalculator.php @@ -25,143 +25,143 @@ */ class MedicalRiskCalculator extends MetaJsonLd implements MedicalRiskCalculatorInterface, MedicalRiskEstimatorInterface, MedicalEntityInterface, ThingInterface { - use MedicalRiskCalculatorTrait; - use MedicalRiskEstimatorTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalRiskCalculator'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalRiskCalculator'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalRiskEstimator'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A complex mathematical calculation requiring an online calculator, used to assess prognosis. Note: use the url property of Thing to record any URLs for online calculators.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'estimatesRiskOf' => ['MedicalEntity'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includedRiskFactor' => ['MedicalRiskFactor'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'estimatesRiskOf' => 'The condition, complication, or symptom whose risk is being estimated.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includedRiskFactor' => 'A modifiable or non-modifiable risk factor included in the calculation, e.g. age, coexisting condition.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalRiskCalculatorTrait; + use MedicalRiskEstimatorTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalRiskCalculator'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalRiskCalculator'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalRiskEstimator'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A complex mathematical calculation requiring an online calculator, used to assess prognosis. Note: use the url property of Thing to record any URLs for online calculators.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'estimatesRiskOf' => ['MedicalEntity'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includedRiskFactor' => ['MedicalRiskFactor'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'estimatesRiskOf' => 'The condition, complication, or symptom whose risk is being estimated.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includedRiskFactor' => 'A modifiable or non-modifiable risk factor included in the calculation, e.g. age, coexisting condition.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalRiskEstimator.php b/src/models/jsonld/MedicalRiskEstimator.php index 43fd4a6c1..a66e540d8 100644 --- a/src/models/jsonld/MedicalRiskEstimator.php +++ b/src/models/jsonld/MedicalRiskEstimator.php @@ -24,142 +24,142 @@ */ class MedicalRiskEstimator extends MetaJsonLd implements MedicalRiskEstimatorInterface, MedicalEntityInterface, ThingInterface { - use MedicalRiskEstimatorTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalRiskEstimator'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalRiskEstimator'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any rule set or interactive tool for estimating the risk of developing a complication or condition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'estimatesRiskOf' => ['MedicalEntity'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includedRiskFactor' => ['MedicalRiskFactor'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'estimatesRiskOf' => 'The condition, complication, or symptom whose risk is being estimated.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includedRiskFactor' => 'A modifiable or non-modifiable risk factor included in the calculation, e.g. age, coexisting condition.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalRiskEstimatorTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalRiskEstimator'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalRiskEstimator'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any rule set or interactive tool for estimating the risk of developing a complication or condition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'estimatesRiskOf' => ['MedicalEntity'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includedRiskFactor' => ['MedicalRiskFactor'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'estimatesRiskOf' => 'The condition, complication, or symptom whose risk is being estimated.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includedRiskFactor' => 'A modifiable or non-modifiable risk factor included in the calculation, e.g. age, coexisting condition.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalRiskFactor.php b/src/models/jsonld/MedicalRiskFactor.php index a72ff38fb..9b3a6d073 100644 --- a/src/models/jsonld/MedicalRiskFactor.php +++ b/src/models/jsonld/MedicalRiskFactor.php @@ -24,140 +24,140 @@ */ class MedicalRiskFactor extends MetaJsonLd implements MedicalRiskFactorInterface, MedicalEntityInterface, ThingInterface { - use MedicalRiskFactorTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalRiskFactor'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalRiskFactor'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A risk factor is anything that increases a person\'s likelihood of developing or contracting a disease, medical condition, or complication.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'increasesRiskOf' => ['MedicalEntity'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'increasesRiskOf' => 'The condition, complication, etc. influenced by this factor.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalRiskFactorTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalRiskFactor'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalRiskFactor'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A risk factor is anything that increases a person\'s likelihood of developing or contracting a disease, medical condition, or complication.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'increasesRiskOf' => ['MedicalEntity'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'increasesRiskOf' => 'The condition, complication, etc. influenced by this factor.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalRiskScore.php b/src/models/jsonld/MedicalRiskScore.php index df38f0b41..f7202d907 100644 --- a/src/models/jsonld/MedicalRiskScore.php +++ b/src/models/jsonld/MedicalRiskScore.php @@ -24,145 +24,145 @@ */ class MedicalRiskScore extends MetaJsonLd implements MedicalRiskScoreInterface, MedicalRiskEstimatorInterface, MedicalEntityInterface, ThingInterface { - use MedicalRiskScoreTrait; - use MedicalRiskEstimatorTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalRiskScore'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalRiskScore'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalRiskEstimator'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A simple system that adds up the number of risk factors to yield a score that is associated with prognosis, e.g. CHAD score, TIMI risk score.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'algorithm' => ['Text'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'estimatesRiskOf' => ['MedicalEntity'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includedRiskFactor' => ['MedicalRiskFactor'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'algorithm' => 'The algorithm or rules to follow to compute the score.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'estimatesRiskOf' => 'The condition, complication, or symptom whose risk is being estimated.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includedRiskFactor' => 'A modifiable or non-modifiable risk factor included in the calculation, e.g. age, coexisting condition.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalRiskScoreTrait; + use MedicalRiskEstimatorTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalRiskScore'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalRiskScore'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalRiskEstimator'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A simple system that adds up the number of risk factors to yield a score that is associated with prognosis, e.g. CHAD score, TIMI risk score.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'algorithm' => ['Text'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'estimatesRiskOf' => ['MedicalEntity'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includedRiskFactor' => ['MedicalRiskFactor'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'algorithm' => 'The algorithm or rules to follow to compute the score.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'estimatesRiskOf' => 'The condition, complication, or symptom whose risk is being estimated.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includedRiskFactor' => 'A modifiable or non-modifiable risk factor included in the calculation, e.g. age, coexisting condition.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalScholarlyArticle.php b/src/models/jsonld/MedicalScholarlyArticle.php index 6047c9895..645ea9ae7 100644 --- a/src/models/jsonld/MedicalScholarlyArticle.php +++ b/src/models/jsonld/MedicalScholarlyArticle.php @@ -23,366 +23,366 @@ */ class MedicalScholarlyArticle extends MetaJsonLd implements MedicalScholarlyArticleInterface, ScholarlyArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use MedicalScholarlyArticleTrait; - use ScholarlyArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use MedicalScholarlyArticleTrait; + use ScholarlyArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalScholarlyArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalScholarlyArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalScholarlyArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalScholarlyArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ScholarlyArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ScholarlyArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A scholarly article in the medical domain.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A scholarly article in the medical domain.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publicationType' => ['Text'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publicationType' => ['Text'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publicationType' => 'The type of the medical article, taken from the US NLM MeSH publication type catalog. See also [MeSH documentation](http://www.nlm.nih.gov/mesh/pubtypes.html).', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publicationType' => 'The type of the medical article, taken from the US NLM MeSH publication type catalog. See also [MeSH documentation](http://www.nlm.nih.gov/mesh/pubtypes.html).', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MedicalSign.php b/src/models/jsonld/MedicalSign.php index 6feb10045..2333daacb 100644 --- a/src/models/jsonld/MedicalSign.php +++ b/src/models/jsonld/MedicalSign.php @@ -24,176 +24,176 @@ */ class MedicalSign extends MetaJsonLd implements MedicalSignInterface, MedicalSignOrSymptomInterface, MedicalConditionInterface, MedicalEntityInterface, ThingInterface { - use MedicalSignTrait; - use MedicalSignOrSymptomTrait; - use MedicalConditionTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalSign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalSign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSignOrSymptom'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any physical manifestation of a person\'s medical condition discoverable by objective diagnostic tests or physical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'differentialDiagnosis' => ['DDxElement'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'epidemiology' => ['Text'], - 'expectedPrognosis' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'identifyingExam' => ['PhysicalExam'], - 'identifyingTest' => ['MedicalTest'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'naturalProgression' => ['Text'], - 'pathophysiology' => ['Text'], - 'possibleComplication' => ['Text'], - 'possibleTreatment' => ['MedicalTherapy'], - 'potentialAction' => ['Action'], - 'primaryPrevention' => ['MedicalTherapy'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'riskFactor' => ['MedicalRiskFactor'], - 'sameAs' => ['URL'], - 'secondaryPrevention' => ['MedicalTherapy'], - 'signOrSymptom' => ['MedicalSignOrSymptom'], - 'stage' => ['MedicalConditionStage'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typicalTest' => ['MedicalTest'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'identifyingExam' => 'A physical examination that can identify this sign.', - 'identifyingTest' => 'A diagnostic test that can identify this sign.', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', - 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', - '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.', - 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', - 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', - 'stage' => 'The stage of the condition, if applicable.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typicalTest' => 'A medical test typically performed given this condition.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalSignTrait; + use MedicalSignOrSymptomTrait; + use MedicalConditionTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalSign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalSign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSignOrSymptom'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any physical manifestation of a person\'s medical condition discoverable by objective diagnostic tests or physical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'differentialDiagnosis' => ['DDxElement'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'epidemiology' => ['Text'], + 'expectedPrognosis' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'identifyingExam' => ['PhysicalExam'], + 'identifyingTest' => ['MedicalTest'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'naturalProgression' => ['Text'], + 'pathophysiology' => ['Text'], + 'possibleComplication' => ['Text'], + 'possibleTreatment' => ['MedicalTherapy'], + 'potentialAction' => ['Action'], + 'primaryPrevention' => ['MedicalTherapy'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'riskFactor' => ['MedicalRiskFactor'], + 'sameAs' => ['URL'], + 'secondaryPrevention' => ['MedicalTherapy'], + 'signOrSymptom' => ['MedicalSignOrSymptom'], + 'stage' => ['MedicalConditionStage'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typicalTest' => ['MedicalTest'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'identifyingExam' => 'A physical examination that can identify this sign.', + 'identifyingTest' => 'A diagnostic test that can identify this sign.', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', + 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', + '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.', + 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', + 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', + 'stage' => 'The stage of the condition, if applicable.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typicalTest' => 'A medical test typically performed given this condition.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalSignOrSymptom.php b/src/models/jsonld/MedicalSignOrSymptom.php index 2b970e2fc..f5baaf324 100644 --- a/src/models/jsonld/MedicalSignOrSymptom.php +++ b/src/models/jsonld/MedicalSignOrSymptom.php @@ -24,171 +24,171 @@ */ class MedicalSignOrSymptom extends MetaJsonLd implements MedicalSignOrSymptomInterface, MedicalConditionInterface, MedicalEntityInterface, ThingInterface { - use MedicalSignOrSymptomTrait; - use MedicalConditionTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalSignOrSymptom'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalSignOrSymptom'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any feature associated or not with a medical condition. In medicine a symptom is generally subjective while a sign is objective.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'differentialDiagnosis' => ['DDxElement'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'epidemiology' => ['Text'], - 'expectedPrognosis' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'naturalProgression' => ['Text'], - 'pathophysiology' => ['Text'], - 'possibleComplication' => ['Text'], - 'possibleTreatment' => ['MedicalTherapy'], - 'potentialAction' => ['Action'], - 'primaryPrevention' => ['MedicalTherapy'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'riskFactor' => ['MedicalRiskFactor'], - 'sameAs' => ['URL'], - 'secondaryPrevention' => ['MedicalTherapy'], - 'signOrSymptom' => ['MedicalSignOrSymptom'], - 'stage' => ['MedicalConditionStage'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typicalTest' => ['MedicalTest'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', - 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', - '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.', - 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', - 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', - 'stage' => 'The stage of the condition, if applicable.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typicalTest' => 'A medical test typically performed given this condition.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalSignOrSymptomTrait; + use MedicalConditionTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalSignOrSymptom'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalSignOrSymptom'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any feature associated or not with a medical condition. In medicine a symptom is generally subjective while a sign is objective.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'differentialDiagnosis' => ['DDxElement'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'epidemiology' => ['Text'], + 'expectedPrognosis' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'naturalProgression' => ['Text'], + 'pathophysiology' => ['Text'], + 'possibleComplication' => ['Text'], + 'possibleTreatment' => ['MedicalTherapy'], + 'potentialAction' => ['Action'], + 'primaryPrevention' => ['MedicalTherapy'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'riskFactor' => ['MedicalRiskFactor'], + 'sameAs' => ['URL'], + 'secondaryPrevention' => ['MedicalTherapy'], + 'signOrSymptom' => ['MedicalSignOrSymptom'], + 'stage' => ['MedicalConditionStage'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typicalTest' => ['MedicalTest'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', + 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', + '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.', + 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', + 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', + 'stage' => 'The stage of the condition, if applicable.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typicalTest' => 'A medical test typically performed given this condition.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalSpecialty.php b/src/models/jsonld/MedicalSpecialty.php index 1f5bcbdef..89e5fb062 100644 --- a/src/models/jsonld/MedicalSpecialty.php +++ b/src/models/jsonld/MedicalSpecialty.php @@ -26,127 +26,127 @@ */ class MedicalSpecialty extends MetaJsonLd implements MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalSpecialty'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalSpecialty'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Specialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any specific branch of medical science or practice. Medical specialities include clinical specialties that pertain to particular organ systems and their respective disease states, as well as allied health specialties. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalSpecialty'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalSpecialty'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Specialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any specific branch of medical science or practice. Medical specialities include clinical specialties that pertain to particular organ systems and their respective disease states, as well as allied health specialties. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalStudy.php b/src/models/jsonld/MedicalStudy.php index 62d128bd4..14d5b4401 100644 --- a/src/models/jsonld/MedicalStudy.php +++ b/src/models/jsonld/MedicalStudy.php @@ -31,148 +31,148 @@ */ class MedicalStudy extends MetaJsonLd implements MedicalStudyInterface, MedicalEntityInterface, ThingInterface { - use MedicalStudyTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalStudy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalStudy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical study is an umbrella type covering all kinds of research studies relating to human medicine or health, including observational studies and interventional trials and registries, randomized, controlled or not. When the specific type of study is known, use one of the extensions of this type, such as MedicalTrial or MedicalObservationalStudy. Also, note that this type should be used to mark up data that describes the study itself; to tag an article that publishes the results of a study, use MedicalScholarlyArticle. Note: use the code property of MedicalEntity to store study IDs, e.g. clinicaltrials.gov ID.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'healthCondition' => ['MedicalCondition'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'studyLocation' => ['AdministrativeArea'], - 'studySubject' => ['MedicalEntity'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'studyLocation' => 'The location in which the study is taking/took place.', - 'studySubject' => 'A subject of the study, i.e. one of the medical conditions, therapies, devices, drugs, etc. investigated by the study.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalStudyTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalStudy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalStudy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical study is an umbrella type covering all kinds of research studies relating to human medicine or health, including observational studies and interventional trials and registries, randomized, controlled or not. When the specific type of study is known, use one of the extensions of this type, such as MedicalTrial or MedicalObservationalStudy. Also, note that this type should be used to mark up data that describes the study itself; to tag an article that publishes the results of a study, use MedicalScholarlyArticle. Note: use the code property of MedicalEntity to store study IDs, e.g. clinicaltrials.gov ID.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'healthCondition' => ['MedicalCondition'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'studyLocation' => ['AdministrativeArea'], + 'studySubject' => ['MedicalEntity'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'studyLocation' => 'The location in which the study is taking/took place.', + 'studySubject' => 'A subject of the study, i.e. one of the medical conditions, therapies, devices, drugs, etc. investigated by the study.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalStudyStatus.php b/src/models/jsonld/MedicalStudyStatus.php index 85ec905d8..624944ca2 100644 --- a/src/models/jsonld/MedicalStudyStatus.php +++ b/src/models/jsonld/MedicalStudyStatus.php @@ -23,126 +23,126 @@ */ class MedicalStudyStatus extends MetaJsonLd implements MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalStudyStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The status of a medical study. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalStudyStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The status of a medical study. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalSymptom.php b/src/models/jsonld/MedicalSymptom.php index 0b843f53c..a0d876ca0 100644 --- a/src/models/jsonld/MedicalSymptom.php +++ b/src/models/jsonld/MedicalSymptom.php @@ -24,172 +24,172 @@ */ class MedicalSymptom extends MetaJsonLd implements MedicalSymptomInterface, MedicalSignOrSymptomInterface, MedicalConditionInterface, MedicalEntityInterface, ThingInterface { - use MedicalSymptomTrait; - use MedicalSignOrSymptomTrait; - use MedicalConditionTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalSymptom'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalSymptom'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSignOrSymptom'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any complaint sensed and expressed by the patient (therefore defined as subjective) like stomachache, lower-back pain, or fatigue.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'differentialDiagnosis' => ['DDxElement'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'epidemiology' => ['Text'], - 'expectedPrognosis' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'naturalProgression' => ['Text'], - 'pathophysiology' => ['Text'], - 'possibleComplication' => ['Text'], - 'possibleTreatment' => ['MedicalTherapy'], - 'potentialAction' => ['Action'], - 'primaryPrevention' => ['MedicalTherapy'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'riskFactor' => ['MedicalRiskFactor'], - 'sameAs' => ['URL'], - 'secondaryPrevention' => ['MedicalTherapy'], - 'signOrSymptom' => ['MedicalSignOrSymptom'], - 'stage' => ['MedicalConditionStage'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typicalTest' => ['MedicalTest'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', - 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', - '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.', - 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', - 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', - 'stage' => 'The stage of the condition, if applicable.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typicalTest' => 'A medical test typically performed given this condition.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalSymptomTrait; + use MedicalSignOrSymptomTrait; + use MedicalConditionTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalSymptom'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalSymptom'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSignOrSymptom'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any complaint sensed and expressed by the patient (therefore defined as subjective) like stomachache, lower-back pain, or fatigue.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'differentialDiagnosis' => ['DDxElement'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'epidemiology' => ['Text'], + 'expectedPrognosis' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'naturalProgression' => ['Text'], + 'pathophysiology' => ['Text'], + 'possibleComplication' => ['Text'], + 'possibleTreatment' => ['MedicalTherapy'], + 'potentialAction' => ['Action'], + 'primaryPrevention' => ['MedicalTherapy'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'riskFactor' => ['MedicalRiskFactor'], + 'sameAs' => ['URL'], + 'secondaryPrevention' => ['MedicalTherapy'], + 'signOrSymptom' => ['MedicalSignOrSymptom'], + 'stage' => ['MedicalConditionStage'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typicalTest' => ['MedicalTest'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', + 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', + '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.', + 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', + 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', + 'stage' => 'The stage of the condition, if applicable.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typicalTest' => 'A medical test typically performed given this condition.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalTest.php b/src/models/jsonld/MedicalTest.php index 08555545c..8f982e30e 100644 --- a/src/models/jsonld/MedicalTest.php +++ b/src/models/jsonld/MedicalTest.php @@ -23,148 +23,148 @@ */ class MedicalTest extends MetaJsonLd implements MedicalTestInterface, MedicalEntityInterface, ThingInterface { - use MedicalTestTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any medical test, typically performed for diagnostic purposes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'affectedBy' => ['Drug'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'normalRange' => ['Text', 'MedicalEnumeration'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'signDetected' => ['MedicalSign'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'usedToDiagnose' => ['MedicalCondition'], - 'usesDevice' => ['MedicalDevice'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'affectedBy' => 'Drugs that affect the test\'s results.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'signDetected' => 'A sign detected by the test.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'usedToDiagnose' => 'A condition the test is used to diagnose.', - 'usesDevice' => 'Device used to perform the test.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalTestTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any medical test, typically performed for diagnostic purposes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'affectedBy' => ['Drug'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'normalRange' => ['Text', 'MedicalEnumeration'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'signDetected' => ['MedicalSign'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'usedToDiagnose' => ['MedicalCondition'], + 'usesDevice' => ['MedicalDevice'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'affectedBy' => 'Drugs that affect the test\'s results.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'signDetected' => 'A sign detected by the test.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'usedToDiagnose' => 'A condition the test is used to diagnose.', + 'usesDevice' => 'Device used to perform the test.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalTestPanel.php b/src/models/jsonld/MedicalTestPanel.php index 1b2fe2085..b267d6e51 100644 --- a/src/models/jsonld/MedicalTestPanel.php +++ b/src/models/jsonld/MedicalTestPanel.php @@ -23,151 +23,151 @@ */ class MedicalTestPanel extends MetaJsonLd implements MedicalTestPanelInterface, MedicalTestInterface, MedicalEntityInterface, ThingInterface { - use MedicalTestPanelTrait; - use MedicalTestTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalTestPanel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalTestPanel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any collection of tests commonly ordered together.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'affectedBy' => ['Drug'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'normalRange' => ['Text', 'MedicalEnumeration'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'signDetected' => ['MedicalSign'], - 'study' => ['MedicalStudy'], - 'subTest' => ['MedicalTest'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'usedToDiagnose' => ['MedicalCondition'], - 'usesDevice' => ['MedicalDevice'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'affectedBy' => 'Drugs that affect the test\'s results.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'signDetected' => 'A sign detected by the test.', - 'study' => 'A medical study or trial related to this entity.', - 'subTest' => 'A component test of the panel.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'usedToDiagnose' => 'A condition the test is used to diagnose.', - 'usesDevice' => 'Device used to perform the test.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalTestPanelTrait; + use MedicalTestTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalTestPanel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalTestPanel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any collection of tests commonly ordered together.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'affectedBy' => ['Drug'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'normalRange' => ['Text', 'MedicalEnumeration'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'signDetected' => ['MedicalSign'], + 'study' => ['MedicalStudy'], + 'subTest' => ['MedicalTest'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'usedToDiagnose' => ['MedicalCondition'], + 'usesDevice' => ['MedicalDevice'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'affectedBy' => 'Drugs that affect the test\'s results.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'signDetected' => 'A sign detected by the test.', + 'study' => 'A medical study or trial related to this entity.', + 'subTest' => 'A component test of the panel.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'usedToDiagnose' => 'A condition the test is used to diagnose.', + 'usesDevice' => 'Device used to perform the test.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalTherapy.php b/src/models/jsonld/MedicalTherapy.php index 9ce2b800e..704e6f493 100644 --- a/src/models/jsonld/MedicalTherapy.php +++ b/src/models/jsonld/MedicalTherapy.php @@ -28,164 +28,164 @@ */ class MedicalTherapy extends MetaJsonLd implements MedicalTherapyInterface, TherapeuticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use MedicalTherapyTrait; - use TherapeuticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TherapeuticProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any medical intervention designed to prevent, treat, and cure human diseases and medical conditions, including both curative and palliative therapies. Medical therapies are typically processes of care relying upon pharmacotherapy, behavioral therapy, supportive therapy (with fluid or nutrition for example), or detoxification (e.g. hemodialysis) aimed at improving or preventing a health condition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'contraindication' => ['Text', 'MedicalContraindication'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'duplicateTherapy' => ['MedicalTherapy'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'seriousAdverseOutcome' => ['MedicalEntity'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'contraindication' => 'A contraindication for this therapy.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalTherapyTrait; + use TherapeuticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TherapeuticProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any medical intervention designed to prevent, treat, and cure human diseases and medical conditions, including both curative and palliative therapies. Medical therapies are typically processes of care relying upon pharmacotherapy, behavioral therapy, supportive therapy (with fluid or nutrition for example), or detoxification (e.g. hemodialysis) aimed at improving or preventing a health condition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'contraindication' => ['Text', 'MedicalContraindication'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'duplicateTherapy' => ['MedicalTherapy'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'seriousAdverseOutcome' => ['MedicalEntity'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'contraindication' => 'A contraindication for this therapy.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalTrial.php b/src/models/jsonld/MedicalTrial.php index 7e231b539..0d2f07271 100644 --- a/src/models/jsonld/MedicalTrial.php +++ b/src/models/jsonld/MedicalTrial.php @@ -26,151 +26,151 @@ */ class MedicalTrial extends MetaJsonLd implements MedicalTrialInterface, MedicalStudyInterface, MedicalEntityInterface, ThingInterface { - use MedicalTrialTrait; - use MedicalStudyTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical trial is a type of medical study that uses a scientific process to compare the safety and efficacy of medical therapies or medical procedures. In general, medical trials are controlled and subjects are allocated at random to the different treatment and/or control groups.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'healthCondition' => ['MedicalCondition'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'studyLocation' => ['AdministrativeArea'], - 'studySubject' => ['MedicalEntity'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'trialDesign' => ['MedicalTrialDesign'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'studyLocation' => 'The location in which the study is taking/took place.', - 'studySubject' => 'A subject of the study, i.e. one of the medical conditions, therapies, devices, drugs, etc. investigated by the study.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'trialDesign' => 'Specifics about the trial design (enumerated).', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalTrialTrait; + use MedicalStudyTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical trial is a type of medical study that uses a scientific process to compare the safety and efficacy of medical therapies or medical procedures. In general, medical trials are controlled and subjects are allocated at random to the different treatment and/or control groups.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'healthCondition' => ['MedicalCondition'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'studyLocation' => ['AdministrativeArea'], + 'studySubject' => ['MedicalEntity'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'trialDesign' => ['MedicalTrialDesign'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'studyLocation' => 'The location in which the study is taking/took place.', + 'studySubject' => 'A subject of the study, i.e. one of the medical conditions, therapies, devices, drugs, etc. investigated by the study.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'trialDesign' => 'Specifics about the trial design (enumerated).', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalTrialDesign.php b/src/models/jsonld/MedicalTrialDesign.php index 184c38895..b5f4ed1df 100644 --- a/src/models/jsonld/MedicalTrialDesign.php +++ b/src/models/jsonld/MedicalTrialDesign.php @@ -23,126 +23,126 @@ */ class MedicalTrialDesign extends MetaJsonLd implements MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalTrialDesign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Design models for medical trials. Enumerated type.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalTrialDesign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Design models for medical trials. Enumerated type.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MedicalWebPage.php b/src/models/jsonld/MedicalWebPage.php index cb7cb6c5f..598c86d24 100644 --- a/src/models/jsonld/MedicalWebPage.php +++ b/src/models/jsonld/MedicalWebPage.php @@ -23,371 +23,371 @@ */ class MedicalWebPage extends MetaJsonLd implements MedicalWebPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use MedicalWebPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use MedicalWebPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicalWebPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicalWebPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicalWebPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicalWebPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A web page that provides medical information.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A web page that provides medical information.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'aspect' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'medicalAudience' => ['MedicalAudience', 'MedicalAudienceType'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'aspect' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'medicalAudience' => ['MedicalAudience', 'MedicalAudienceType'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'aspect' => 'An aspect of medical practice that is considered on the page, such as \'diagnosis\', \'treatment\', \'causes\', \'prognosis\', \'etiology\', \'epidemiology\', etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'medicalAudience' => 'Medical audience for page.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'aspect' => 'An aspect of medical practice that is considered on the page, such as \'diagnosis\', \'treatment\', \'causes\', \'prognosis\', \'etiology\', \'epidemiology\', etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'medicalAudience' => 'Medical audience for page.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MedicineSystem.php b/src/models/jsonld/MedicineSystem.php index 9d334278e..8d3387f05 100644 --- a/src/models/jsonld/MedicineSystem.php +++ b/src/models/jsonld/MedicineSystem.php @@ -23,126 +23,126 @@ */ class MedicineSystem extends MetaJsonLd implements MedicineSystemInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MedicineSystemTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MedicineSystem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MedicineSystem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Systems of medical practice.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MedicineSystemTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MedicineSystem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MedicineSystem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Systems of medical practice.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MeetingRoom.php b/src/models/jsonld/MeetingRoom.php index 406b7cd2b..a19e8e392 100644 --- a/src/models/jsonld/MeetingRoom.php +++ b/src/models/jsonld/MeetingRoom.php @@ -28,240 +28,240 @@ */ class MeetingRoom extends MetaJsonLd implements MeetingRoomInterface, RoomInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use MeetingRoomTrait; - use RoomTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use MeetingRoomTrait; + use RoomTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MeetingRoom'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MeetingRoom'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MeetingRoom'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MeetingRoom'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Room'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Room'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A meeting room, conference room, or conference hall is a room provided for singular events such as business conferences and meetings (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Conference_hall).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A meeting room, conference room, or conference hall is a room provided for singular events such as business conferences and meetings (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Conference_hall).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MensClothingStore.php b/src/models/jsonld/MensClothingStore.php index 082bbbf5f..ec4b23688 100644 --- a/src/models/jsonld/MensClothingStore.php +++ b/src/models/jsonld/MensClothingStore.php @@ -23,331 +23,331 @@ */ class MensClothingStore extends MetaJsonLd implements MensClothingStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MensClothingStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MensClothingStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MensClothingStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MensClothingStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MensClothingStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MensClothingStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A men\'s clothing store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A men\'s clothing store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Menu.php b/src/models/jsonld/Menu.php index 65f16e0a3..eed546980 100644 --- a/src/models/jsonld/Menu.php +++ b/src/models/jsonld/Menu.php @@ -24,350 +24,350 @@ */ class Menu extends MetaJsonLd implements MenuInterface, CreativeWorkInterface, ThingInterface { - use MenuTrait; - use CreativeWorkTrait; - use ThingTrait; + use MenuTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Menu'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Menu'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Menu'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Menu'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A structured representation of food or drink items available from a FoodEstablishment.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A structured representation of food or drink items available from a FoodEstablishment.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasMenuItem' => ['MenuItem'], - 'hasMenuSection' => ['MenuSection'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasMenuItem' => ['MenuItem'], + 'hasMenuSection' => ['MenuSection'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasMenuItem' => 'A food or drink item contained in a menu or menu section.', - 'hasMenuSection' => 'A subgrouping of the menu (by dishes, course, serving time period, etc.).', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasMenuItem' => 'A food or drink item contained in a menu or menu section.', + 'hasMenuSection' => 'A subgrouping of the menu (by dishes, course, serving time period, etc.).', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MenuItem.php b/src/models/jsonld/MenuItem.php index 89b2d5515..99379c0f7 100644 --- a/src/models/jsonld/MenuItem.php +++ b/src/models/jsonld/MenuItem.php @@ -23,130 +23,130 @@ */ class MenuItem extends MetaJsonLd implements MenuItemInterface, IntangibleInterface, ThingInterface { - use MenuItemTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MenuItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MenuItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A food or drink item listed in a menu or menu section.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'menuAddOn' => ['MenuItem', 'MenuSection'], - 'name' => ['Text'], - 'nutrition' => ['NutritionInformation'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suitableForDiet' => ['RestrictedDiet'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'menuAddOn' => 'Additional menu item(s) such as a side dish of salad or side order of fries that can be added to this menu item. Additionally it can be a menu section containing allowed add-on menu items for this menu item.', - 'name' => 'The name of the item.', - 'nutrition' => 'Nutrition information about the recipe or menu item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suitableForDiet' => 'Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MenuItemTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MenuItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MenuItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A food or drink item listed in a menu or menu section.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'menuAddOn' => ['MenuItem', 'MenuSection'], + 'name' => ['Text'], + 'nutrition' => ['NutritionInformation'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suitableForDiet' => ['RestrictedDiet'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'menuAddOn' => 'Additional menu item(s) such as a side dish of salad or side order of fries that can be added to this menu item. Additionally it can be a menu section containing allowed add-on menu items for this menu item.', + 'name' => 'The name of the item.', + 'nutrition' => 'Nutrition information about the recipe or menu item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suitableForDiet' => 'Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MenuSection.php b/src/models/jsonld/MenuSection.php index e6c4b7ffc..1748d50f8 100644 --- a/src/models/jsonld/MenuSection.php +++ b/src/models/jsonld/MenuSection.php @@ -26,350 +26,350 @@ */ class MenuSection extends MetaJsonLd implements MenuSectionInterface, CreativeWorkInterface, ThingInterface { - use MenuSectionTrait; - use CreativeWorkTrait; - use ThingTrait; + use MenuSectionTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MenuSection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MenuSection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MenuSection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MenuSection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A sub-grouping of food or drink items in a menu. E.g. courses (such as \'Dinner\', \'Breakfast\', etc.), specific type of dishes (such as \'Meat\', \'Vegan\', \'Drinks\', etc.), or some other classification made by the menu provider.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A sub-grouping of food or drink items in a menu. E.g. courses (such as \'Dinner\', \'Breakfast\', etc.), specific type of dishes (such as \'Meat\', \'Vegan\', \'Drinks\', etc.), or some other classification made by the menu provider.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasMenuItem' => ['MenuItem'], - 'hasMenuSection' => ['MenuSection'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasMenuItem' => ['MenuItem'], + 'hasMenuSection' => ['MenuSection'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasMenuItem' => 'A food or drink item contained in a menu or menu section.', - 'hasMenuSection' => 'A subgrouping of the menu (by dishes, course, serving time period, etc.).', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasMenuItem' => 'A food or drink item contained in a menu or menu section.', + 'hasMenuSection' => 'A subgrouping of the menu (by dishes, course, serving time period, etc.).', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MerchantReturnEnumeration.php b/src/models/jsonld/MerchantReturnEnumeration.php index 4770276af..9dee61cc7 100644 --- a/src/models/jsonld/MerchantReturnEnumeration.php +++ b/src/models/jsonld/MerchantReturnEnumeration.php @@ -23,125 +23,125 @@ */ class MerchantReturnEnumeration extends MetaJsonLd implements MerchantReturnEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MerchantReturnEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MerchantReturnEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates several kinds of product return policies.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MerchantReturnEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MerchantReturnEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates several kinds of product return policies.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MerchantReturnFiniteReturnWindow.php b/src/models/jsonld/MerchantReturnFiniteReturnWindow.php index 7ed1048c1..b6571c4be 100644 --- a/src/models/jsonld/MerchantReturnFiniteReturnWindow.php +++ b/src/models/jsonld/MerchantReturnFiniteReturnWindow.php @@ -23,126 +23,126 @@ */ class MerchantReturnFiniteReturnWindow extends MetaJsonLd implements MerchantReturnFiniteReturnWindowInterface, MerchantReturnEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MerchantReturnFiniteReturnWindowTrait; - use MerchantReturnEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MerchantReturnFiniteReturnWindow'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MerchantReturnFiniteReturnWindow'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that there is a finite window for product returns.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MerchantReturnFiniteReturnWindowTrait; + use MerchantReturnEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MerchantReturnFiniteReturnWindow'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MerchantReturnFiniteReturnWindow'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that there is a finite window for product returns.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MerchantReturnNotPermitted.php b/src/models/jsonld/MerchantReturnNotPermitted.php index 0a2f086e7..2af75d8c1 100644 --- a/src/models/jsonld/MerchantReturnNotPermitted.php +++ b/src/models/jsonld/MerchantReturnNotPermitted.php @@ -23,126 +23,126 @@ */ class MerchantReturnNotPermitted extends MetaJsonLd implements MerchantReturnNotPermittedInterface, MerchantReturnEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MerchantReturnNotPermittedTrait; - use MerchantReturnEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MerchantReturnNotPermitted'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MerchantReturnNotPermitted'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that product returns are not permitted.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MerchantReturnNotPermittedTrait; + use MerchantReturnEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MerchantReturnNotPermitted'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MerchantReturnNotPermitted'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that product returns are not permitted.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MerchantReturnPolicy.php b/src/models/jsonld/MerchantReturnPolicy.php index 938645fa2..0d3ee2375 100644 --- a/src/models/jsonld/MerchantReturnPolicy.php +++ b/src/models/jsonld/MerchantReturnPolicy.php @@ -24,164 +24,164 @@ */ class MerchantReturnPolicy extends MetaJsonLd implements MerchantReturnPolicyInterface, IntangibleInterface, ThingInterface { - use MerchantReturnPolicyTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MerchantReturnPolicy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MerchantReturnPolicy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A MerchantReturnPolicy provides information about product return policies associated with an [[Organization]], [[Product]], or [[Offer]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'applicableCountry' => ['Country', 'Text'], - 'customerRemorseReturnFees' => ['ReturnFeesEnumeration'], - 'customerRemorseReturnLabelSource' => ['ReturnLabelSourceEnumeration'], - 'customerRemorseReturnShippingFeesAmount' => ['MonetaryAmount'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inStoreReturnsOffered' => ['Boolean'], - 'itemCondition' => ['OfferItemCondition'], - 'itemDefectReturnFees' => ['ReturnFeesEnumeration'], - 'itemDefectReturnLabelSource' => ['ReturnLabelSourceEnumeration'], - 'itemDefectReturnShippingFeesAmount' => ['MonetaryAmount'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'merchantReturnDays' => ['DateTime', 'Integer', 'Date'], - 'merchantReturnLink' => ['URL'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'refundType' => ['RefundTypeEnumeration'], - 'restockingFee' => ['MonetaryAmount', 'Number'], - 'returnFees' => ['ReturnFeesEnumeration'], - 'returnLabelSource' => ['ReturnLabelSourceEnumeration'], - 'returnMethod' => ['ReturnMethodEnumeration'], - 'returnPolicyCategory' => ['MerchantReturnEnumeration'], - 'returnPolicyCountry' => ['Country', 'Text'], - 'returnPolicySeasonalOverride' => ['MerchantReturnPolicySeasonalOverride'], - 'returnShippingFeesAmount' => ['MonetaryAmount'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'applicableCountry' => 'A country where a particular merchant return policy applies to, for example the two-letter ISO 3166-1 alpha-2 country code.', - 'customerRemorseReturnFees' => 'The type of return fees if the product is returned due to customer remorse.', - 'customerRemorseReturnLabelSource' => 'The method (from an enumeration) by which the customer obtains a return shipping label for a product returned due to customer remorse.', - 'customerRemorseReturnShippingFeesAmount' => 'The amount of shipping costs if a product is returned due to customer remorse. Applicable when property [[customerRemorseReturnFees]] equals [[ReturnShippingFees]].', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inStoreReturnsOffered' => 'Are in-store returns offered? (For more advanced return methods use the [[returnMethod]] property.)', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - 'itemDefectReturnFees' => 'The type of return fees for returns of defect products.', - 'itemDefectReturnLabelSource' => 'The method (from an enumeration) by which the customer obtains a return shipping label for a defect product.', - 'itemDefectReturnShippingFeesAmount' => 'Amount of shipping costs for defect product returns. Applicable when property [[itemDefectReturnFees]] equals [[ReturnShippingFees]].', - '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.', - 'merchantReturnDays' => 'Specifies either a fixed return date or the number of days (from the delivery date) that a product can be returned. Used when the [[returnPolicyCategory]] property is specified as [[MerchantReturnFiniteReturnWindow]].', - 'merchantReturnLink' => 'Specifies a Web page or service by URL, for product returns.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'refundType' => 'A refund type, from an enumerated list.', - 'restockingFee' => 'Use [[MonetaryAmount]] to specify a fixed restocking fee for product returns, or use [[Number]] to specify a percentage of the product price paid by the customer.', - 'returnFees' => 'The type of return fees for purchased products (for any return reason).', - 'returnLabelSource' => 'The method (from an enumeration) by which the customer obtains a return shipping label for a product returned for any reason.', - 'returnMethod' => 'The type of return method offered, specified from an enumeration.', - 'returnPolicyCategory' => 'Specifies an applicable return policy (from an enumeration).', - 'returnPolicyCountry' => 'The country where the product has to be sent to for returns, for example "Ireland" using the [[name]] property of [[Country]]. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1). Note that this can be different from the country where the product was originally shipped from or sent to.', - 'returnPolicySeasonalOverride' => 'Seasonal override of a return policy.', - 'returnShippingFeesAmount' => 'Amount of shipping costs for product returns (for any reason). Applicable when property [[returnFees]] equals [[ReturnShippingFees]].', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MerchantReturnPolicyTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MerchantReturnPolicy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MerchantReturnPolicy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A MerchantReturnPolicy provides information about product return policies associated with an [[Organization]], [[Product]], or [[Offer]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'applicableCountry' => ['Country', 'Text'], + 'customerRemorseReturnFees' => ['ReturnFeesEnumeration'], + 'customerRemorseReturnLabelSource' => ['ReturnLabelSourceEnumeration'], + 'customerRemorseReturnShippingFeesAmount' => ['MonetaryAmount'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inStoreReturnsOffered' => ['Boolean'], + 'itemCondition' => ['OfferItemCondition'], + 'itemDefectReturnFees' => ['ReturnFeesEnumeration'], + 'itemDefectReturnLabelSource' => ['ReturnLabelSourceEnumeration'], + 'itemDefectReturnShippingFeesAmount' => ['MonetaryAmount'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'merchantReturnDays' => ['DateTime', 'Integer', 'Date'], + 'merchantReturnLink' => ['URL'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'refundType' => ['RefundTypeEnumeration'], + 'restockingFee' => ['MonetaryAmount', 'Number'], + 'returnFees' => ['ReturnFeesEnumeration'], + 'returnLabelSource' => ['ReturnLabelSourceEnumeration'], + 'returnMethod' => ['ReturnMethodEnumeration'], + 'returnPolicyCategory' => ['MerchantReturnEnumeration'], + 'returnPolicyCountry' => ['Country', 'Text'], + 'returnPolicySeasonalOverride' => ['MerchantReturnPolicySeasonalOverride'], + 'returnShippingFeesAmount' => ['MonetaryAmount'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'applicableCountry' => 'A country where a particular merchant return policy applies to, for example the two-letter ISO 3166-1 alpha-2 country code.', + 'customerRemorseReturnFees' => 'The type of return fees if the product is returned due to customer remorse.', + 'customerRemorseReturnLabelSource' => 'The method (from an enumeration) by which the customer obtains a return shipping label for a product returned due to customer remorse.', + 'customerRemorseReturnShippingFeesAmount' => 'The amount of shipping costs if a product is returned due to customer remorse. Applicable when property [[customerRemorseReturnFees]] equals [[ReturnShippingFees]].', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inStoreReturnsOffered' => 'Are in-store returns offered? (For more advanced return methods use the [[returnMethod]] property.)', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + 'itemDefectReturnFees' => 'The type of return fees for returns of defect products.', + 'itemDefectReturnLabelSource' => 'The method (from an enumeration) by which the customer obtains a return shipping label for a defect product.', + 'itemDefectReturnShippingFeesAmount' => 'Amount of shipping costs for defect product returns. Applicable when property [[itemDefectReturnFees]] equals [[ReturnShippingFees]].', + '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.', + 'merchantReturnDays' => 'Specifies either a fixed return date or the number of days (from the delivery date) that a product can be returned. Used when the [[returnPolicyCategory]] property is specified as [[MerchantReturnFiniteReturnWindow]].', + 'merchantReturnLink' => 'Specifies a Web page or service by URL, for product returns.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'refundType' => 'A refund type, from an enumerated list.', + 'restockingFee' => 'Use [[MonetaryAmount]] to specify a fixed restocking fee for product returns, or use [[Number]] to specify a percentage of the product price paid by the customer.', + 'returnFees' => 'The type of return fees for purchased products (for any return reason).', + 'returnLabelSource' => 'The method (from an enumeration) by which the customer obtains a return shipping label for a product returned for any reason.', + 'returnMethod' => 'The type of return method offered, specified from an enumeration.', + 'returnPolicyCategory' => 'Specifies an applicable return policy (from an enumeration).', + 'returnPolicyCountry' => 'The country where the product has to be sent to for returns, for example "Ireland" using the [[name]] property of [[Country]]. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1). Note that this can be different from the country where the product was originally shipped from or sent to.', + 'returnPolicySeasonalOverride' => 'Seasonal override of a return policy.', + 'returnShippingFeesAmount' => 'Amount of shipping costs for product returns (for any reason). Applicable when property [[returnFees]] equals [[ReturnShippingFees]].', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MerchantReturnPolicySeasonalOverride.php b/src/models/jsonld/MerchantReturnPolicySeasonalOverride.php index 08368c040..2fd8ec746 100644 --- a/src/models/jsonld/MerchantReturnPolicySeasonalOverride.php +++ b/src/models/jsonld/MerchantReturnPolicySeasonalOverride.php @@ -23,130 +23,130 @@ */ class MerchantReturnPolicySeasonalOverride extends MetaJsonLd implements MerchantReturnPolicySeasonalOverrideInterface, IntangibleInterface, ThingInterface { - use MerchantReturnPolicySeasonalOverrideTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MerchantReturnPolicySeasonalOverride'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MerchantReturnPolicySeasonalOverride'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A seasonal override of a return policy, for example used for holidays.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'merchantReturnDays' => ['DateTime', 'Integer', 'Date'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'returnPolicyCategory' => ['MerchantReturnEnumeration'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'merchantReturnDays' => 'Specifies either a fixed return date or the number of days (from the delivery date) that a product can be returned. Used when the [[returnPolicyCategory]] property is specified as [[MerchantReturnFiniteReturnWindow]].', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'returnPolicyCategory' => 'Specifies an applicable return policy (from an enumeration).', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MerchantReturnPolicySeasonalOverrideTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MerchantReturnPolicySeasonalOverride'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MerchantReturnPolicySeasonalOverride'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A seasonal override of a return policy, for example used for holidays.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'merchantReturnDays' => ['DateTime', 'Integer', 'Date'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'returnPolicyCategory' => ['MerchantReturnEnumeration'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'merchantReturnDays' => 'Specifies either a fixed return date or the number of days (from the delivery date) that a product can be returned. Used when the [[returnPolicyCategory]] property is specified as [[MerchantReturnFiniteReturnWindow]].', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'returnPolicyCategory' => 'Specifies an applicable return policy (from an enumeration).', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MerchantReturnUnlimitedWindow.php b/src/models/jsonld/MerchantReturnUnlimitedWindow.php index 67dd417a2..13128a0ae 100644 --- a/src/models/jsonld/MerchantReturnUnlimitedWindow.php +++ b/src/models/jsonld/MerchantReturnUnlimitedWindow.php @@ -23,126 +23,126 @@ */ class MerchantReturnUnlimitedWindow extends MetaJsonLd implements MerchantReturnUnlimitedWindowInterface, MerchantReturnEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MerchantReturnUnlimitedWindowTrait; - use MerchantReturnEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MerchantReturnUnlimitedWindow'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MerchantReturnUnlimitedWindow'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that there is an unlimited window for product returns.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MerchantReturnUnlimitedWindowTrait; + use MerchantReturnEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MerchantReturnUnlimitedWindow'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MerchantReturnUnlimitedWindow'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that there is an unlimited window for product returns.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MerchantReturnUnspecified.php b/src/models/jsonld/MerchantReturnUnspecified.php index 390f97245..bff60dd68 100644 --- a/src/models/jsonld/MerchantReturnUnspecified.php +++ b/src/models/jsonld/MerchantReturnUnspecified.php @@ -23,126 +23,126 @@ */ class MerchantReturnUnspecified extends MetaJsonLd implements MerchantReturnUnspecifiedInterface, MerchantReturnEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MerchantReturnUnspecifiedTrait; - use MerchantReturnEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MerchantReturnUnspecified'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MerchantReturnUnspecified'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MerchantReturnEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that a product return policy is not provided.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MerchantReturnUnspecifiedTrait; + use MerchantReturnEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MerchantReturnUnspecified'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MerchantReturnUnspecified'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MerchantReturnEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that a product return policy is not provided.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Message.php b/src/models/jsonld/Message.php index e70a0d094..a9cb8aafe 100644 --- a/src/models/jsonld/Message.php +++ b/src/models/jsonld/Message.php @@ -23,364 +23,364 @@ */ class Message extends MetaJsonLd implements MessageInterface, CreativeWorkInterface, ThingInterface { - use MessageTrait; - use CreativeWorkTrait; - use ThingTrait; + use MessageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Message'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Message'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Message'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Message'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A single message from a sender to one or more organizations or people.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A single message from a sender to one or more organizations or people.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bccRecipient' => ['Organization', 'ContactPoint', 'Person'], - 'ccRecipient' => ['Organization', 'ContactPoint', 'Person'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateRead' => ['DateTime', 'Date'], - 'dateReceived' => ['DateTime'], - 'dateSent' => ['DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'messageAttachment' => ['CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sender' => ['Audience', 'Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'toRecipient' => ['Person', 'Organization', 'ContactPoint', 'Audience'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bccRecipient' => ['Organization', 'ContactPoint', 'Person'], + 'ccRecipient' => ['Organization', 'ContactPoint', 'Person'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateRead' => ['DateTime', 'Date'], + 'dateReceived' => ['DateTime'], + 'dateSent' => ['DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'messageAttachment' => ['CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sender' => ['Audience', 'Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'toRecipient' => ['Person', 'Organization', 'ContactPoint', 'Audience'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bccRecipient' => 'A sub property of recipient. The recipient blind copied on a message.', - 'ccRecipient' => 'A sub property of recipient. The recipient copied on a message.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateRead' => 'The date/time at which the message has been read by the recipient if a single recipient exists.', - 'dateReceived' => 'The date/time the message was received if a single recipient exists.', - 'dateSent' => 'The date/time at which the message was sent.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'messageAttachment' => 'A CreativeWork attached to the message.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sender' => 'A sub property of participant. The participant who is at the sending end of the action.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'toRecipient' => 'A sub property of recipient. The recipient who was directly sent the message.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bccRecipient' => 'A sub property of recipient. The recipient blind copied on a message.', + 'ccRecipient' => 'A sub property of recipient. The recipient copied on a message.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateRead' => 'The date/time at which the message has been read by the recipient if a single recipient exists.', + 'dateReceived' => 'The date/time the message was received if a single recipient exists.', + 'dateSent' => 'The date/time at which the message was sent.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'messageAttachment' => 'A CreativeWork attached to the message.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sender' => 'A sub property of participant. The participant who is at the sending end of the action.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'toRecipient' => 'A sub property of recipient. The recipient who was directly sent the message.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MiddleSchool.php b/src/models/jsonld/MiddleSchool.php index a8caf0a9b..25062c62a 100644 --- a/src/models/jsonld/MiddleSchool.php +++ b/src/models/jsonld/MiddleSchool.php @@ -24,323 +24,323 @@ */ class MiddleSchool extends MetaJsonLd implements MiddleSchoolInterface, EducationalOrganizationInterface, CivicStructureInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MiddleSchoolTrait; - use EducationalOrganizationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MiddleSchoolTrait; + use EducationalOrganizationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MiddleSchool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MiddleSchool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MiddleSchool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MiddleSchool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A middle school (typically for children aged around 11-14, although this varies somewhat).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A middle school (typically for children aged around 11-14, although this varies somewhat).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Midwifery.php b/src/models/jsonld/Midwifery.php index c7ea666f8..fc98a4113 100644 --- a/src/models/jsonld/Midwifery.php +++ b/src/models/jsonld/Midwifery.php @@ -25,338 +25,338 @@ */ class Midwifery extends MetaJsonLd implements MidwiferyInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use MidwiferyTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use MidwiferyTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Midwifery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Midwifery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Midwifery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Midwifery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A nurse-like health profession that deals with pregnancy, childbirth, and the postpartum period (including care of the newborn), besides sexual and reproductive health of women throughout their lives.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A nurse-like health profession that deals with pregnancy, childbirth, and the postpartum period (including care of the newborn), besides sexual and reproductive health of women throughout their lives.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MinimumAdvertisedPrice.php b/src/models/jsonld/MinimumAdvertisedPrice.php index 3297b74a1..c98f95350 100644 --- a/src/models/jsonld/MinimumAdvertisedPrice.php +++ b/src/models/jsonld/MinimumAdvertisedPrice.php @@ -24,126 +24,126 @@ */ class MinimumAdvertisedPrice extends MetaJsonLd implements MinimumAdvertisedPriceInterface, PriceTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MinimumAdvertisedPriceTrait; - use PriceTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MinimumAdvertisedPrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MinimumAdvertisedPrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the minimum advertised price ("MAP") (as dictated by the manufacturer) of an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MinimumAdvertisedPriceTrait; + use PriceTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MinimumAdvertisedPrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MinimumAdvertisedPrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the minimum advertised price ("MAP") (as dictated by the manufacturer) of an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MisconceptionsHealthAspect.php b/src/models/jsonld/MisconceptionsHealthAspect.php index 28e227f3c..e553fb96e 100644 --- a/src/models/jsonld/MisconceptionsHealthAspect.php +++ b/src/models/jsonld/MisconceptionsHealthAspect.php @@ -23,126 +23,126 @@ */ class MisconceptionsHealthAspect extends MetaJsonLd implements MisconceptionsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MisconceptionsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MisconceptionsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MisconceptionsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about common misconceptions and myths that are related to a topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MisconceptionsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MisconceptionsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MisconceptionsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about common misconceptions and myths that are related to a topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MixedEventAttendanceMode.php b/src/models/jsonld/MixedEventAttendanceMode.php index 802f3edf6..2a44766c5 100644 --- a/src/models/jsonld/MixedEventAttendanceMode.php +++ b/src/models/jsonld/MixedEventAttendanceMode.php @@ -24,126 +24,126 @@ */ class MixedEventAttendanceMode extends MetaJsonLd implements MixedEventAttendanceModeInterface, EventAttendanceModeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MixedEventAttendanceModeTrait; - use EventAttendanceModeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MixedEventAttendanceMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MixedEventAttendanceMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'MixedEventAttendanceMode - an event that is conducted as a combination of both offline and online modes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MixedEventAttendanceModeTrait; + use EventAttendanceModeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MixedEventAttendanceMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MixedEventAttendanceMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'MixedEventAttendanceMode - an event that is conducted as a combination of both offline and online modes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MixtapeAlbum.php b/src/models/jsonld/MixtapeAlbum.php index 99fc59257..578926b7b 100644 --- a/src/models/jsonld/MixtapeAlbum.php +++ b/src/models/jsonld/MixtapeAlbum.php @@ -23,126 +23,126 @@ */ class MixtapeAlbum extends MetaJsonLd implements MixtapeAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MixtapeAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MixtapeAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MixtapeAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'MixtapeAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MixtapeAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MixtapeAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MixtapeAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'MixtapeAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MobileApplication.php b/src/models/jsonld/MobileApplication.php index 10e15bda6..870a7a3d5 100644 --- a/src/models/jsonld/MobileApplication.php +++ b/src/models/jsonld/MobileApplication.php @@ -24,397 +24,397 @@ */ class MobileApplication extends MetaJsonLd implements MobileApplicationInterface, SoftwareApplicationInterface, CreativeWorkInterface, ThingInterface { - use MobileApplicationTrait; - use SoftwareApplicationTrait; - use CreativeWorkTrait; - use ThingTrait; + use MobileApplicationTrait; + use SoftwareApplicationTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MobileApplication'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MobileApplication'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MobileApplication'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MobileApplication'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SoftwareApplication'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SoftwareApplication'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A software application designed specifically to work well on a mobile device such as a telephone.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A software application designed specifically to work well on a mobile device such as a telephone.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'applicationCategory' => ['URL', 'Text'], - 'applicationSubCategory' => ['URL', 'Text'], - 'applicationSuite' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'availableOnDevice' => ['Text'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'carrierRequirements' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countriesNotSupported' => ['Text'], - 'countriesSupported' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'device' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downloadUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'featureList' => ['URL', 'Text'], - 'fileFormat' => ['Text', 'URL'], - 'fileSize' => ['Text'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'installUrl' => ['URL'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'memoryRequirements' => ['Text', 'URL'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'operatingSystem' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'permissions' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'processorRequirements' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releaseNotes' => ['Text', 'URL'], - 'releasedEvent' => ['PublicationEvent'], - 'requirements' => ['Text', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'screenshot' => ['URL', 'ImageObject'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'softwareAddOn' => ['SoftwareApplication'], - 'softwareHelp' => ['CreativeWork'], - 'softwareRequirements' => ['Text', 'URL'], - 'softwareVersion' => ['Text'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'storageRequirements' => ['URL', 'Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supportingData' => ['DataFeed'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'applicationCategory' => ['URL', 'Text'], + 'applicationSubCategory' => ['URL', 'Text'], + 'applicationSuite' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'availableOnDevice' => ['Text'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'carrierRequirements' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countriesNotSupported' => ['Text'], + 'countriesSupported' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'device' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downloadUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'featureList' => ['URL', 'Text'], + 'fileFormat' => ['Text', 'URL'], + 'fileSize' => ['Text'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'installUrl' => ['URL'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'memoryRequirements' => ['Text', 'URL'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'operatingSystem' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'permissions' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'processorRequirements' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releaseNotes' => ['Text', 'URL'], + 'releasedEvent' => ['PublicationEvent'], + 'requirements' => ['Text', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'screenshot' => ['URL', 'ImageObject'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'softwareAddOn' => ['SoftwareApplication'], + 'softwareHelp' => ['CreativeWork'], + 'softwareRequirements' => ['Text', 'URL'], + 'softwareVersion' => ['Text'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'storageRequirements' => ['URL', 'Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supportingData' => ['DataFeed'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', - 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', - 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'carrierRequirements' => 'Specifies specific carrier(s) requirements for the application (e.g. an application may only work on a specific carrier network).', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'memoryRequirements' => 'Minimum memory requirements.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releaseNotes' => 'Description of what changed in this version.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'screenshot' => 'A link to a screenshot image of the app.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'softwareAddOn' => 'Additional content for a software application.', - 'softwareHelp' => 'Software application help.', - 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'softwareVersion' => 'Version of the software instance.', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'storageRequirements' => 'Storage requirements (free space required).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supportingData' => 'Supporting data for a SoftwareApplication.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', + 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', + 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'carrierRequirements' => 'Specifies specific carrier(s) requirements for the application (e.g. an application may only work on a specific carrier network).', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'memoryRequirements' => 'Minimum memory requirements.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releaseNotes' => 'Description of what changed in this version.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'screenshot' => 'A link to a screenshot image of the app.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'softwareAddOn' => 'Additional content for a software application.', + 'softwareHelp' => 'Software application help.', + 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'softwareVersion' => 'Version of the software instance.', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'storageRequirements' => 'Storage requirements (free space required).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supportingData' => 'Supporting data for a SoftwareApplication.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MobilePhoneStore.php b/src/models/jsonld/MobilePhoneStore.php index 54a36b3c7..e595ffa10 100644 --- a/src/models/jsonld/MobilePhoneStore.php +++ b/src/models/jsonld/MobilePhoneStore.php @@ -23,331 +23,331 @@ */ class MobilePhoneStore extends MetaJsonLd implements MobilePhoneStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MobilePhoneStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MobilePhoneStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MobilePhoneStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MobilePhoneStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MobilePhoneStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MobilePhoneStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A store that sells mobile phones and related accessories.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A store that sells mobile phones and related accessories.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MobileWebPlatform.php b/src/models/jsonld/MobileWebPlatform.php index 0c1530510..db7a564a8 100644 --- a/src/models/jsonld/MobileWebPlatform.php +++ b/src/models/jsonld/MobileWebPlatform.php @@ -23,126 +23,126 @@ */ class MobileWebPlatform extends MetaJsonLd implements MobileWebPlatformInterface, DigitalPlatformEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MobileWebPlatformTrait; - use DigitalPlatformEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MobileWebPlatform'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MobileWebPlatform'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the broad notion of \'mobile\' browsers as a Web Platform.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MobileWebPlatformTrait; + use DigitalPlatformEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MobileWebPlatform'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MobileWebPlatform'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalPlatformEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the broad notion of \'mobile\' browsers as a Web Platform.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MolecularEntity.php b/src/models/jsonld/MolecularEntity.php index 3bff82db2..5bb72d519 100644 --- a/src/models/jsonld/MolecularEntity.php +++ b/src/models/jsonld/MolecularEntity.php @@ -25,166 +25,166 @@ */ class MolecularEntity extends MetaJsonLd implements MolecularEntityInterface, BioChemEntityInterface, ThingInterface { - use MolecularEntityTrait; - use BioChemEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MolecularEntity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MolecularEntity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any constitutionally or isotopically distinct atom, molecule, ion, ion pair, radical, radical ion, complex, conformer etc., identifiable as a separately distinguishable entity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], - 'bioChemInteraction' => ['BioChemEntity'], - 'bioChemSimilarity' => ['BioChemEntity'], - 'biologicalRole' => ['DefinedTerm'], - 'chemicalRole' => ['DefinedTerm'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'hasBioChemEntityPart' => ['BioChemEntity'], - 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inChI' => ['Text'], - 'inChIKey' => ['Text'], - 'isEncodedByBioChemEntity' => ['Gene'], - 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], - 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'isPartOfBioChemEntity' => ['BioChemEntity'], - 'iupacName' => ['Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'molecularFormula' => ['Text'], - 'molecularWeight' => ['QuantitativeValue', 'Text'], - 'monoisotopicMolecularWeight' => ['Text', 'QuantitativeValue'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'potentialUse' => ['DefinedTerm'], - 'sameAs' => ['URL'], - 'smiles' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', - 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', - 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', - 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', - 'chemicalRole' => 'A role played by the BioChemEntity within a chemical context.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', - 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', - 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inChI' => 'Non-proprietary identifier for molecular entity that can be used in printed and electronic data sources thus enabling easier linking of diverse data compilations.', - 'inChIKey' => 'InChIKey is a hashed version of the full InChI (using the SHA-256 algorithm).', - 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', - 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', - 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', - 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', - 'iupacName' => 'Systematic method of naming chemical compounds as recommended by the International Union of Pure and Applied Chemistry (IUPAC).', - '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.', - 'molecularFormula' => 'The empirical formula is the simplest whole number ratio of all the atoms in a molecule.', - 'molecularWeight' => 'This is the molecular weight of the entity being described, not of the parent. Units should be included in the form \' \', for example \'12 amu\' or as \'.', - 'monoisotopicMolecularWeight' => 'The monoisotopic mass is the sum of the masses of the atoms in a molecule using the unbound, ground-state, rest mass of the principal (most abundant) isotope for each element instead of the isotopic average mass. Please include the units in the form \' \', for example \'770.230488 g/mol\' or as \'.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'potentialUse' => 'Intended use of the BioChemEntity by humans.', - '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.', - 'smiles' => 'A specification in form of a line notation for describing the structure of chemical species using short ASCII strings. Double bond stereochemistry \ indicators may need to be escaped in the string in formats where the backslash is an escape character.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MolecularEntityTrait; + use BioChemEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MolecularEntity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MolecularEntity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any constitutionally or isotopically distinct atom, molecule, ion, ion pair, radical, radical ion, complex, conformer etc., identifiable as a separately distinguishable entity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], + 'bioChemInteraction' => ['BioChemEntity'], + 'bioChemSimilarity' => ['BioChemEntity'], + 'biologicalRole' => ['DefinedTerm'], + 'chemicalRole' => ['DefinedTerm'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'hasBioChemEntityPart' => ['BioChemEntity'], + 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inChI' => ['Text'], + 'inChIKey' => ['Text'], + 'isEncodedByBioChemEntity' => ['Gene'], + 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], + 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'isPartOfBioChemEntity' => ['BioChemEntity'], + 'iupacName' => ['Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'molecularFormula' => ['Text'], + 'molecularWeight' => ['QuantitativeValue', 'Text'], + 'monoisotopicMolecularWeight' => ['Text', 'QuantitativeValue'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'potentialUse' => ['DefinedTerm'], + 'sameAs' => ['URL'], + 'smiles' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', + 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', + 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', + 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', + 'chemicalRole' => 'A role played by the BioChemEntity within a chemical context.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', + 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', + 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inChI' => 'Non-proprietary identifier for molecular entity that can be used in printed and electronic data sources thus enabling easier linking of diverse data compilations.', + 'inChIKey' => 'InChIKey is a hashed version of the full InChI (using the SHA-256 algorithm).', + 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', + 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', + 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', + 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', + 'iupacName' => 'Systematic method of naming chemical compounds as recommended by the International Union of Pure and Applied Chemistry (IUPAC).', + '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.', + 'molecularFormula' => 'The empirical formula is the simplest whole number ratio of all the atoms in a molecule.', + 'molecularWeight' => 'This is the molecular weight of the entity being described, not of the parent. Units should be included in the form \' \', for example \'12 amu\' or as \'.', + 'monoisotopicMolecularWeight' => 'The monoisotopic mass is the sum of the masses of the atoms in a molecule using the unbound, ground-state, rest mass of the principal (most abundant) isotope for each element instead of the isotopic average mass. Please include the units in the form \' \', for example \'770.230488 g/mol\' or as \'.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'potentialUse' => 'Intended use of the BioChemEntity by humans.', + '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.', + 'smiles' => 'A specification in form of a line notation for describing the structure of chemical species using short ASCII strings. Double bond stereochemistry \ indicators may need to be escaped in the string in formats where the backslash is an escape character.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Monday.php b/src/models/jsonld/Monday.php index 9edc6936c..2627dd1a0 100644 --- a/src/models/jsonld/Monday.php +++ b/src/models/jsonld/Monday.php @@ -23,126 +23,126 @@ */ class Monday extends MetaJsonLd implements MondayInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MondayTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Monday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Monday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The day of the week between Sunday and Tuesday.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MondayTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Monday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Monday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The day of the week between Sunday and Tuesday.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MonetaryAmount.php b/src/models/jsonld/MonetaryAmount.php index 6aaab9e41..e7529286f 100644 --- a/src/models/jsonld/MonetaryAmount.php +++ b/src/models/jsonld/MonetaryAmount.php @@ -27,135 +27,135 @@ */ class MonetaryAmount extends MetaJsonLd implements MonetaryAmountInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use MonetaryAmountTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MonetaryAmount'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MonetaryAmount'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A monetary value or range. This type can be used to describe an amount of money such as $50 USD, or a range as in describing a bank account being suitable for a balance between £1,000 and £1,000,000 GBP, or the value of a salary, etc. It is recommended to use [[PriceSpecification]] Types to describe the price of an Offer, Invoice, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'currency' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxValue' => ['Number'], - 'minValue' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'currency' => 'The currency in which the monetary amount is expressed. 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".', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxValue' => 'The upper value of some characteristic or property.', - 'minValue' => 'The lower value of some characteristic or property.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MonetaryAmountTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MonetaryAmount'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MonetaryAmount'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A monetary value or range. This type can be used to describe an amount of money such as $50 USD, or a range as in describing a bank account being suitable for a balance between £1,000 and £1,000,000 GBP, or the value of a salary, etc. It is recommended to use [[PriceSpecification]] Types to describe the price of an Offer, Invoice, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'currency' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxValue' => ['Number'], + 'minValue' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'currency' => 'The currency in which the monetary amount is expressed. 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".', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxValue' => 'The upper value of some characteristic or property.', + 'minValue' => 'The lower value of some characteristic or property.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MonetaryAmountDistribution.php b/src/models/jsonld/MonetaryAmountDistribution.php index 2a0ecc12b..4843e516f 100644 --- a/src/models/jsonld/MonetaryAmountDistribution.php +++ b/src/models/jsonld/MonetaryAmountDistribution.php @@ -23,138 +23,138 @@ */ class MonetaryAmountDistribution extends MetaJsonLd implements MonetaryAmountDistributionInterface, QuantitativeValueDistributionInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use MonetaryAmountDistributionTrait; - use QuantitativeValueDistributionTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MonetaryAmountDistribution'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MonetaryAmountDistribution'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'QuantitativeValueDistribution'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A statistical distribution of monetary amounts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'currency' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'duration' => ['Duration'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'median' => ['Number'], - 'name' => ['Text'], - 'percentile10' => ['Number'], - 'percentile25' => ['Number'], - 'percentile75' => ['Number'], - 'percentile90' => ['Number'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'currency' => 'The currency in which the monetary amount is expressed. 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".', - 'description' => 'A description of the item.', - '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.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'median' => 'The median value.', - 'name' => 'The name of the item.', - 'percentile10' => 'The 10th percentile value.', - 'percentile25' => 'The 25th percentile value.', - 'percentile75' => 'The 75th percentile value.', - 'percentile90' => 'The 90th percentile value.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MonetaryAmountDistributionTrait; + use QuantitativeValueDistributionTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MonetaryAmountDistribution'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MonetaryAmountDistribution'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'QuantitativeValueDistribution'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A statistical distribution of monetary amounts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'currency' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'duration' => ['Duration'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'median' => ['Number'], + 'name' => ['Text'], + 'percentile10' => ['Number'], + 'percentile25' => ['Number'], + 'percentile75' => ['Number'], + 'percentile90' => ['Number'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'currency' => 'The currency in which the monetary amount is expressed. 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".', + 'description' => 'A description of the item.', + '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.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'median' => 'The median value.', + 'name' => 'The name of the item.', + 'percentile10' => 'The 10th percentile value.', + 'percentile25' => 'The 25th percentile value.', + 'percentile75' => 'The 75th percentile value.', + 'percentile90' => 'The 90th percentile value.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MonetaryGrant.php b/src/models/jsonld/MonetaryGrant.php index d0744cf9f..7ef10515e 100644 --- a/src/models/jsonld/MonetaryGrant.php +++ b/src/models/jsonld/MonetaryGrant.php @@ -23,131 +23,131 @@ */ class MonetaryGrant extends MetaJsonLd implements MonetaryGrantInterface, GrantInterface, IntangibleInterface, ThingInterface { - use MonetaryGrantTrait; - use GrantTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MonetaryGrant'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MonetaryGrant'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Grant'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A monetary grant.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'fundedItem' => ['Organization', 'BioChemEntity', 'Event', 'Person', 'MedicalEntity', 'Product', 'CreativeWork'], - 'funder' => ['Organization', 'Person'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'description' => 'A description of the item.', - '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.', - 'fundedItem' => 'Indicates something directly or indirectly funded or sponsored through a [[Grant]]. See also [[ownershipFundingInfo]].', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MonetaryGrantTrait; + use GrantTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MonetaryGrant'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MonetaryGrant'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Grant'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A monetary grant.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'fundedItem' => ['Organization', 'BioChemEntity', 'Event', 'Person', 'MedicalEntity', 'Product', 'CreativeWork'], + 'funder' => ['Organization', 'Person'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'description' => 'A description of the item.', + '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.', + 'fundedItem' => 'Indicates something directly or indirectly funded or sponsored through a [[Grant]]. See also [[ownershipFundingInfo]].', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MoneyTransfer.php b/src/models/jsonld/MoneyTransfer.php index bca9bb4b3..c9968c629 100644 --- a/src/models/jsonld/MoneyTransfer.php +++ b/src/models/jsonld/MoneyTransfer.php @@ -24,155 +24,155 @@ */ class MoneyTransfer extends MetaJsonLd implements MoneyTransferInterface, TransferActionInterface, ActionInterface, ThingInterface { - use MoneyTransferTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MoneyTransfer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MoneyTransfer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of transferring money from one place to another place. This may occur electronically or physically.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'beneficiaryBank' => ['Text', 'BankOrCreditUnion'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'beneficiaryBank' => 'A bank or bank’s branch, financial institution or international financial institution operating the beneficiary’s bank account or releasing funds for the beneficiary.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MoneyTransferTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MoneyTransfer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MoneyTransfer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of transferring money from one place to another place. This may occur electronically or physically.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'beneficiaryBank' => ['Text', 'BankOrCreditUnion'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'beneficiaryBank' => 'A bank or bank’s branch, financial institution or international financial institution operating the beneficiary’s bank account or releasing funds for the beneficiary.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MortgageLoan.php b/src/models/jsonld/MortgageLoan.php index f7ce5ff71..9d0c5de77 100644 --- a/src/models/jsonld/MortgageLoan.php +++ b/src/models/jsonld/MortgageLoan.php @@ -24,201 +24,201 @@ */ class MortgageLoan extends MetaJsonLd implements MortgageLoanInterface, LoanOrCreditInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use MortgageLoanTrait; - use LoanOrCreditTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MortgageLoan'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MortgageLoan'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LoanOrCredit'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A loan in which property or real estate is used as collateral. (A loan securitized against some real estate.)'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amount' => ['MonetaryAmount', 'Number'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'currency' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'domiciledMortgage' => ['Boolean'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'gracePeriod' => ['Duration'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'loanMortgageMandateAmount' => ['MonetaryAmount'], - 'loanRepaymentForm' => ['RepaymentSpecification'], - 'loanTerm' => ['QuantitativeValue'], - 'loanType' => ['URL', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'recourseLoan' => ['Boolean'], - 'renegotiableLoan' => ['Boolean'], - 'requiredCollateral' => ['Thing', 'Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'amount' => 'The amount of money.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'currency' => 'The currency in which the monetary amount is expressed. 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".', - 'description' => 'A description of the item.', - '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.', - 'domiciledMortgage' => 'Whether borrower is a resident of the jurisdiction where the property is located.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'gracePeriod' => 'The period of time after any due date that the borrower has to fulfil its obligations before a default (failure to pay) is deemed to have occurred.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'loanMortgageMandateAmount' => 'Amount of mortgage mandate that can be converted into a proper mortgage at a later stage.', - 'loanRepaymentForm' => 'A form of paying back money previously borrowed from a lender. Repayment usually takes the form of periodic payments that normally include part principal plus interest in each payment.', - 'loanTerm' => 'The duration of the loan or credit agreement.', - 'loanType' => 'The type of a loan or credit.', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'recourseLoan' => 'The only way you get the money back in the event of default is the security. Recourse is where you still have the opportunity to go back to the borrower for the rest of the money.', - 'renegotiableLoan' => 'Whether the terms for payment of interest can be renegotiated during the life of the loan.', - 'requiredCollateral' => 'Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MortgageLoanTrait; + use LoanOrCreditTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MortgageLoan'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MortgageLoan'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LoanOrCredit'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A loan in which property or real estate is used as collateral. (A loan securitized against some real estate.)'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amount' => ['MonetaryAmount', 'Number'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'currency' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'domiciledMortgage' => ['Boolean'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'gracePeriod' => ['Duration'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'loanMortgageMandateAmount' => ['MonetaryAmount'], + 'loanRepaymentForm' => ['RepaymentSpecification'], + 'loanTerm' => ['QuantitativeValue'], + 'loanType' => ['URL', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'recourseLoan' => ['Boolean'], + 'renegotiableLoan' => ['Boolean'], + 'requiredCollateral' => ['Thing', 'Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'amount' => 'The amount of money.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'currency' => 'The currency in which the monetary amount is expressed. 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".', + 'description' => 'A description of the item.', + '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.', + 'domiciledMortgage' => 'Whether borrower is a resident of the jurisdiction where the property is located.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'gracePeriod' => 'The period of time after any due date that the borrower has to fulfil its obligations before a default (failure to pay) is deemed to have occurred.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'loanMortgageMandateAmount' => 'Amount of mortgage mandate that can be converted into a proper mortgage at a later stage.', + 'loanRepaymentForm' => 'A form of paying back money previously borrowed from a lender. Repayment usually takes the form of periodic payments that normally include part principal plus interest in each payment.', + 'loanTerm' => 'The duration of the loan or credit agreement.', + 'loanType' => 'The type of a loan or credit.', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'recourseLoan' => 'The only way you get the money back in the event of default is the security. Recourse is where you still have the opportunity to go back to the borrower for the rest of the money.', + 'renegotiableLoan' => 'Whether the terms for payment of interest can be renegotiated during the life of the loan.', + 'requiredCollateral' => 'Assets required to secure loan or credit repayments. It may take form of third party pledge, goods, financial instruments (cash, securities, etc.)', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Mosque.php b/src/models/jsonld/Mosque.php index c3a663f7c..667f3bdbc 100644 --- a/src/models/jsonld/Mosque.php +++ b/src/models/jsonld/Mosque.php @@ -23,216 +23,216 @@ */ class Mosque extends MetaJsonLd implements MosqueInterface, PlaceOfWorshipInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use MosqueTrait; - use PlaceOfWorshipTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Mosque'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Mosque'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A mosque.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MosqueTrait; + use PlaceOfWorshipTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Mosque'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Mosque'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A mosque.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Motel.php b/src/models/jsonld/Motel.php index 7ec468d8c..a14ae41ff 100644 --- a/src/models/jsonld/Motel.php +++ b/src/models/jsonld/Motel.php @@ -25,345 +25,345 @@ */ class Motel extends MetaJsonLd implements MotelInterface, LodgingBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MotelTrait; - use LodgingBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MotelTrait; + use LodgingBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Motel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Motel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Motel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Motel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A motel.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A motel.\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Motorcycle.php b/src/models/jsonld/Motorcycle.php index 8c3c93a59..0360f06bc 100644 --- a/src/models/jsonld/Motorcycle.php +++ b/src/models/jsonld/Motorcycle.php @@ -23,307 +23,307 @@ */ class Motorcycle extends MetaJsonLd implements MotorcycleInterface, VehicleInterface, ProductInterface, ThingInterface { - use MotorcycleTrait; - use VehicleTrait; - use ProductTrait; - use ThingTrait; + use MotorcycleTrait; + use VehicleTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Motorcycle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Motorcycle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Motorcycle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Motorcycle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A motorcycle or motorbike is a single-track, two-wheeled motor vehicle.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A motorcycle or motorbike is a single-track, two-wheeled motor vehicle.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accelerationTime' => ['QuantitativeValue'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bodyType' => ['URL', 'QualitativeValue', 'Text'], - 'brand' => ['Brand', 'Organization'], - 'callSign' => ['Text'], - 'cargoVolume' => ['QuantitativeValue'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'dateVehicleFirstRegistered' => ['Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], - 'emissionsCO2' => ['Number'], - 'fuelCapacity' => ['QuantitativeValue'], - 'fuelConsumption' => ['QuantitativeValue'], - 'fuelEfficiency' => ['QuantitativeValue'], - 'fuelType' => ['URL', 'QualitativeValue', 'Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knownVehicleDamages' => ['Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], - 'mileageFromOdometer' => ['QuantitativeValue'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'modelDate' => ['Date'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'numberOfAirbags' => ['Number', 'Text'], - 'numberOfAxles' => ['Number', 'QuantitativeValue'], - 'numberOfDoors' => ['Number', 'QuantitativeValue'], - 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], - 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'payload' => ['QuantitativeValue'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seatingCapacity' => ['Number', 'QuantitativeValue'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'speed' => ['QuantitativeValue'], - 'steeringPosition' => ['SteeringPositionValue'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'tongueWeight' => ['QuantitativeValue'], - 'trailerWeight' => ['QuantitativeValue'], - 'url' => ['URL'], - 'vehicleConfiguration' => ['Text'], - 'vehicleEngine' => ['EngineSpecification'], - 'vehicleIdentificationNumber' => ['Text'], - 'vehicleInteriorColor' => ['Text'], - 'vehicleInteriorType' => ['Text'], - 'vehicleModelDate' => ['Date'], - 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], - 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], - 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], - 'weight' => ['QuantitativeValue'], - 'weightTotal' => ['QuantitativeValue'], - 'wheelbase' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accelerationTime' => ['QuantitativeValue'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bodyType' => ['URL', 'QualitativeValue', 'Text'], + 'brand' => ['Brand', 'Organization'], + 'callSign' => ['Text'], + 'cargoVolume' => ['QuantitativeValue'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'dateVehicleFirstRegistered' => ['Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], + 'emissionsCO2' => ['Number'], + 'fuelCapacity' => ['QuantitativeValue'], + 'fuelConsumption' => ['QuantitativeValue'], + 'fuelEfficiency' => ['QuantitativeValue'], + 'fuelType' => ['URL', 'QualitativeValue', 'Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knownVehicleDamages' => ['Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], + 'mileageFromOdometer' => ['QuantitativeValue'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'modelDate' => ['Date'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'numberOfAirbags' => ['Number', 'Text'], + 'numberOfAxles' => ['Number', 'QuantitativeValue'], + 'numberOfDoors' => ['Number', 'QuantitativeValue'], + 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], + 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'payload' => ['QuantitativeValue'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seatingCapacity' => ['Number', 'QuantitativeValue'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'speed' => ['QuantitativeValue'], + 'steeringPosition' => ['SteeringPositionValue'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'tongueWeight' => ['QuantitativeValue'], + 'trailerWeight' => ['QuantitativeValue'], + 'url' => ['URL'], + 'vehicleConfiguration' => ['Text'], + 'vehicleEngine' => ['EngineSpecification'], + 'vehicleIdentificationNumber' => ['Text'], + 'vehicleInteriorColor' => ['Text'], + 'vehicleInteriorType' => ['Text'], + 'vehicleModelDate' => ['Date'], + 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], + 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], + 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], + 'weight' => ['QuantitativeValue'], + 'weightTotal' => ['QuantitativeValue'], + 'wheelbase' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', - 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', - 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', - 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', - 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', - 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', - 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', - 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', - 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', - 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', - 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', - 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'url' => 'URL of the item.', - 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', - 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', - 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', - 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', - 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', - 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', - 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', - 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', - 'weight' => 'The weight of the product or person.', - 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', + 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', + 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', + 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', + 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', + 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', + 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', + 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', + 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', + 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', + 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', + 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'url' => 'URL of the item.', + 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', + 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', + 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', + 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', + 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', + 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', + 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', + 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', + 'weight' => 'The weight of the product or person.', + 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MotorcycleDealer.php b/src/models/jsonld/MotorcycleDealer.php index 6e7fa9039..99c8d5444 100644 --- a/src/models/jsonld/MotorcycleDealer.php +++ b/src/models/jsonld/MotorcycleDealer.php @@ -23,331 +23,331 @@ */ class MotorcycleDealer extends MetaJsonLd implements MotorcycleDealerInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MotorcycleDealerTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MotorcycleDealerTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MotorcycleDealer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MotorcycleDealer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MotorcycleDealer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MotorcycleDealer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A motorcycle dealer.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A motorcycle dealer.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MotorcycleRepair.php b/src/models/jsonld/MotorcycleRepair.php index 0ec3401d8..57d869784 100644 --- a/src/models/jsonld/MotorcycleRepair.php +++ b/src/models/jsonld/MotorcycleRepair.php @@ -23,331 +23,331 @@ */ class MotorcycleRepair extends MetaJsonLd implements MotorcycleRepairInterface, AutomotiveBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MotorcycleRepairTrait; - use AutomotiveBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MotorcycleRepairTrait; + use AutomotiveBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MotorcycleRepair'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MotorcycleRepair'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MotorcycleRepair'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MotorcycleRepair'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AutomotiveBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AutomotiveBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A motorcycle repair shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A motorcycle repair shop.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MotorizedBicycle.php b/src/models/jsonld/MotorizedBicycle.php index e8df690b7..f62e753f6 100644 --- a/src/models/jsonld/MotorizedBicycle.php +++ b/src/models/jsonld/MotorizedBicycle.php @@ -24,307 +24,307 @@ */ class MotorizedBicycle extends MetaJsonLd implements MotorizedBicycleInterface, VehicleInterface, ProductInterface, ThingInterface { - use MotorizedBicycleTrait; - use VehicleTrait; - use ProductTrait; - use ThingTrait; + use MotorizedBicycleTrait; + use VehicleTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MotorizedBicycle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MotorizedBicycle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MotorizedBicycle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MotorizedBicycle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Vehicle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Vehicle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A motorized bicycle is a bicycle with an attached motor used to power the vehicle, or to assist with pedaling.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A motorized bicycle is a bicycle with an attached motor used to power the vehicle, or to assist with pedaling.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accelerationTime' => ['QuantitativeValue'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bodyType' => ['URL', 'QualitativeValue', 'Text'], - 'brand' => ['Brand', 'Organization'], - 'callSign' => ['Text'], - 'cargoVolume' => ['QuantitativeValue'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'dateVehicleFirstRegistered' => ['Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], - 'emissionsCO2' => ['Number'], - 'fuelCapacity' => ['QuantitativeValue'], - 'fuelConsumption' => ['QuantitativeValue'], - 'fuelEfficiency' => ['QuantitativeValue'], - 'fuelType' => ['URL', 'QualitativeValue', 'Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knownVehicleDamages' => ['Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], - 'mileageFromOdometer' => ['QuantitativeValue'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'modelDate' => ['Date'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'numberOfAirbags' => ['Number', 'Text'], - 'numberOfAxles' => ['Number', 'QuantitativeValue'], - 'numberOfDoors' => ['Number', 'QuantitativeValue'], - 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], - 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'payload' => ['QuantitativeValue'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seatingCapacity' => ['Number', 'QuantitativeValue'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'speed' => ['QuantitativeValue'], - 'steeringPosition' => ['SteeringPositionValue'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'tongueWeight' => ['QuantitativeValue'], - 'trailerWeight' => ['QuantitativeValue'], - 'url' => ['URL'], - 'vehicleConfiguration' => ['Text'], - 'vehicleEngine' => ['EngineSpecification'], - 'vehicleIdentificationNumber' => ['Text'], - 'vehicleInteriorColor' => ['Text'], - 'vehicleInteriorType' => ['Text'], - 'vehicleModelDate' => ['Date'], - 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], - 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], - 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], - 'weight' => ['QuantitativeValue'], - 'weightTotal' => ['QuantitativeValue'], - 'wheelbase' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accelerationTime' => ['QuantitativeValue'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bodyType' => ['URL', 'QualitativeValue', 'Text'], + 'brand' => ['Brand', 'Organization'], + 'callSign' => ['Text'], + 'cargoVolume' => ['QuantitativeValue'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'dateVehicleFirstRegistered' => ['Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], + 'emissionsCO2' => ['Number'], + 'fuelCapacity' => ['QuantitativeValue'], + 'fuelConsumption' => ['QuantitativeValue'], + 'fuelEfficiency' => ['QuantitativeValue'], + 'fuelType' => ['URL', 'QualitativeValue', 'Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knownVehicleDamages' => ['Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], + 'mileageFromOdometer' => ['QuantitativeValue'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'modelDate' => ['Date'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'numberOfAirbags' => ['Number', 'Text'], + 'numberOfAxles' => ['Number', 'QuantitativeValue'], + 'numberOfDoors' => ['Number', 'QuantitativeValue'], + 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], + 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'payload' => ['QuantitativeValue'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seatingCapacity' => ['Number', 'QuantitativeValue'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'speed' => ['QuantitativeValue'], + 'steeringPosition' => ['SteeringPositionValue'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'tongueWeight' => ['QuantitativeValue'], + 'trailerWeight' => ['QuantitativeValue'], + 'url' => ['URL'], + 'vehicleConfiguration' => ['Text'], + 'vehicleEngine' => ['EngineSpecification'], + 'vehicleIdentificationNumber' => ['Text'], + 'vehicleInteriorColor' => ['Text'], + 'vehicleInteriorType' => ['Text'], + 'vehicleModelDate' => ['Date'], + 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], + 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], + 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], + 'weight' => ['QuantitativeValue'], + 'weightTotal' => ['QuantitativeValue'], + 'wheelbase' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', - 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', - 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', - 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', - 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', - 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', - 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', - 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', - 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', - 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', - 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', - 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'url' => 'URL of the item.', - 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', - 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', - 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', - 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', - 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', - 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', - 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', - 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', - 'weight' => 'The weight of the product or person.', - 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', + 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', + 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', + 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', + 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', + 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', + 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', + 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', + 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', + 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', + 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', + 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'url' => 'URL of the item.', + 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', + 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', + 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', + 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', + 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', + 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', + 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', + 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', + 'weight' => 'The weight of the product or person.', + 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Mountain.php b/src/models/jsonld/Mountain.php index 47e2e9258..834850233 100644 --- a/src/models/jsonld/Mountain.php +++ b/src/models/jsonld/Mountain.php @@ -23,213 +23,213 @@ */ class Mountain extends MetaJsonLd implements MountainInterface, LandformInterface, PlaceInterface, ThingInterface { - use MountainTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Mountain'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Mountain'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A mountain, like Mount Whitney or Mount Everest.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MountainTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Mountain'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Mountain'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A mountain, like Mount Whitney or Mount Everest.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MoveAction.php b/src/models/jsonld/MoveAction.php index 47dc2cdca..c6b5737c6 100644 --- a/src/models/jsonld/MoveAction.php +++ b/src/models/jsonld/MoveAction.php @@ -25,150 +25,150 @@ */ class MoveAction extends MetaJsonLd implements MoveActionInterface, ActionInterface, ThingInterface { - use MoveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MoveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MoveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of an agent relocating to a place.\n\nRelated actions:\n\n* [[TransferAction]]: Unlike TransferAction, the subject of the move is a living Person or Organization rather than an inanimate object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MoveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MoveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MoveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of an agent relocating to a place.\n\nRelated actions:\n\n* [[TransferAction]]: Unlike TransferAction, the subject of the move is a living Person or Organization rather than an inanimate object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Movie.php b/src/models/jsonld/Movie.php index bd29abe83..913446e25 100644 --- a/src/models/jsonld/Movie.php +++ b/src/models/jsonld/Movie.php @@ -23,366 +23,366 @@ */ class Movie extends MetaJsonLd implements MovieInterface, CreativeWorkInterface, ThingInterface { - use MovieTrait; - use CreativeWorkTrait; - use ThingTrait; + use MovieTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Movie'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Movie'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Movie'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Movie'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A movie.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A movie.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'subtitleLanguage' => ['Language', 'Text'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'titleEIDR' => ['URL', 'Text'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'subtitleLanguage' => ['Language', 'Text'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'titleEIDR' => ['URL', 'Text'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'titleEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television. For example, the motion picture known as "Ghostbusters" has a titleEIDR of "10.5240/7EC7-228A-510A-053E-CBB8-J". This title (or work) may have several variants, which EIDR calls "edits". See [[editEIDR]]. Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'titleEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television. For example, the motion picture known as "Ghostbusters" has a titleEIDR of "10.5240/7EC7-228A-510A-053E-CBB8-J". This title (or work) may have several variants, which EIDR calls "edits". See [[editEIDR]]. Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MovieClip.php b/src/models/jsonld/MovieClip.php index 1cc961b8a..47cb685bd 100644 --- a/src/models/jsonld/MovieClip.php +++ b/src/models/jsonld/MovieClip.php @@ -23,369 +23,369 @@ */ class MovieClip extends MetaJsonLd implements MovieClipInterface, ClipInterface, CreativeWorkInterface, ThingInterface { - use MovieClipTrait; - use ClipTrait; - use CreativeWorkTrait; - use ThingTrait; + use MovieClipTrait; + use ClipTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MovieClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MovieClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MovieClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MovieClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A short segment/part of a movie.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A short segment/part of a movie.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'clipNumber' => ['Integer', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endOffset' => ['Number', 'HyperTocEntry'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfEpisode' => ['Episode'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startOffset' => ['Number', 'HyperTocEntry'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'clipNumber' => ['Integer', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endOffset' => ['Number', 'HyperTocEntry'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfEpisode' => ['Episode'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startOffset' => ['Number', 'HyperTocEntry'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'clipNumber' => 'Position of the clip within an ordered group of clips.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfEpisode' => 'The episode to which this clip belongs.', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'clipNumber' => 'Position of the clip within an ordered group of clips.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfEpisode' => 'The episode to which this clip belongs.', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MovieRentalStore.php b/src/models/jsonld/MovieRentalStore.php index db27eb76a..de088d4ee 100644 --- a/src/models/jsonld/MovieRentalStore.php +++ b/src/models/jsonld/MovieRentalStore.php @@ -23,331 +23,331 @@ */ class MovieRentalStore extends MetaJsonLd implements MovieRentalStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MovieRentalStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MovieRentalStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MovieRentalStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MovieRentalStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MovieRentalStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MovieRentalStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A movie rental store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A movie rental store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MovieSeries.php b/src/models/jsonld/MovieSeries.php index 144ae7572..512bfc7be 100644 --- a/src/models/jsonld/MovieSeries.php +++ b/src/models/jsonld/MovieSeries.php @@ -24,369 +24,369 @@ */ class MovieSeries extends MetaJsonLd implements MovieSeriesInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use MovieSeriesTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use MovieSeriesTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MovieSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MovieSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MovieSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MovieSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A series of movies. Included movies can be indicated with the hasPart property.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A series of movies. Included movies can be indicated with the hasPart property.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MovieTheater.php b/src/models/jsonld/MovieTheater.php index 10bc79700..681f5f82b 100644 --- a/src/models/jsonld/MovieTheater.php +++ b/src/models/jsonld/MovieTheater.php @@ -23,334 +23,334 @@ */ class MovieTheater extends MetaJsonLd implements MovieTheaterInterface, CivicStructureInterface, PlaceInterface, ThingInterface, EntertainmentBusinessInterface, LocalBusinessInterface, OrganizationInterface { - use MovieTheaterTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use OrganizationTrait; + use MovieTheaterTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MovieTheater'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MovieTheater'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MovieTheater'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MovieTheater'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A movie theater.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A movie theater.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'screenCount' => ['Number'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'screenCount' => ['Number'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'screenCount' => 'The number of screens in the movie theater.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'screenCount' => 'The number of screens in the movie theater.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MovingCompany.php b/src/models/jsonld/MovingCompany.php index dff808c45..0f848a267 100644 --- a/src/models/jsonld/MovingCompany.php +++ b/src/models/jsonld/MovingCompany.php @@ -23,331 +23,331 @@ */ class MovingCompany extends MetaJsonLd implements MovingCompanyInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MovingCompanyTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MovingCompanyTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MovingCompany'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MovingCompany'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MovingCompany'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MovingCompany'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A moving company.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A moving company.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MultiCenterTrial.php b/src/models/jsonld/MultiCenterTrial.php index 2494d284c..4e0a0fc4d 100644 --- a/src/models/jsonld/MultiCenterTrial.php +++ b/src/models/jsonld/MultiCenterTrial.php @@ -23,127 +23,127 @@ */ class MultiCenterTrial extends MetaJsonLd implements MultiCenterTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MultiCenterTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MultiCenterTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MultiCenterTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trial that takes place at multiple centers.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MultiCenterTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MultiCenterTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MultiCenterTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trial that takes place at multiple centers.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MultiPlayer.php b/src/models/jsonld/MultiPlayer.php index 09a1fbec4..3092c2c9a 100644 --- a/src/models/jsonld/MultiPlayer.php +++ b/src/models/jsonld/MultiPlayer.php @@ -24,126 +24,126 @@ */ class MultiPlayer extends MetaJsonLd implements MultiPlayerInterface, GamePlayModeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MultiPlayerTrait; - use GamePlayModeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MultiPlayer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MultiPlayer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GamePlayMode'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Play mode: MultiPlayer. Requiring or allowing multiple human players to play simultaneously.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MultiPlayerTrait; + use GamePlayModeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MultiPlayer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MultiPlayer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GamePlayMode'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Play mode: MultiPlayer. Requiring or allowing multiple human players to play simultaneously.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MulticellularParasite.php b/src/models/jsonld/MulticellularParasite.php index 8f796fc40..7ebe1695a 100644 --- a/src/models/jsonld/MulticellularParasite.php +++ b/src/models/jsonld/MulticellularParasite.php @@ -23,127 +23,127 @@ */ class MulticellularParasite extends MetaJsonLd implements MulticellularParasiteInterface, InfectiousAgentClassInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MulticellularParasiteTrait; - use InfectiousAgentClassTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MulticellularParasite'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MulticellularParasite'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Multicellular parasite that causes an infection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MulticellularParasiteTrait; + use InfectiousAgentClassTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MulticellularParasite'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MulticellularParasite'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Multicellular parasite that causes an infection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Muscle.php b/src/models/jsonld/Muscle.php index 968a4d36c..1124d909c 100644 --- a/src/models/jsonld/Muscle.php +++ b/src/models/jsonld/Muscle.php @@ -24,165 +24,165 @@ */ class Muscle extends MetaJsonLd implements MuscleInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use MuscleTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Muscle'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Muscle'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A muscle is an anatomical structure consisting of a contractile form of tissue that animals use to effect movement.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'antagonist' => ['Muscle'], - 'associatedPathophysiology' => ['Text'], - 'bloodSupply' => ['Vessel'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'insertion' => ['AnatomicalStructure'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'muscleAction' => ['Text'], - 'name' => ['Text'], - 'nerve' => ['Nerve'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'antagonist' => 'The muscle whose action counteracts the specified muscle.', - '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.', - 'bloodSupply' => 'The blood vessel that carries blood from the heart to the muscle.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'insertion' => 'The place of attachment of a muscle, or what the muscle moves.', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'muscleAction' => 'The movement the muscle generates.', - 'name' => 'The name of the item.', - 'nerve' => 'The underlying innervation associated with the muscle.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MuscleTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Muscle'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Muscle'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A muscle is an anatomical structure consisting of a contractile form of tissue that animals use to effect movement.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'antagonist' => ['Muscle'], + 'associatedPathophysiology' => ['Text'], + 'bloodSupply' => ['Vessel'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'insertion' => ['AnatomicalStructure'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'muscleAction' => ['Text'], + 'name' => ['Text'], + 'nerve' => ['Nerve'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'antagonist' => 'The muscle whose action counteracts the specified muscle.', + '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.', + 'bloodSupply' => 'The blood vessel that carries blood from the heart to the muscle.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'insertion' => 'The place of attachment of a muscle, or what the muscle moves.', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'muscleAction' => 'The movement the muscle generates.', + 'name' => 'The name of the item.', + 'nerve' => 'The underlying innervation associated with the muscle.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Musculoskeletal.php b/src/models/jsonld/Musculoskeletal.php index e676c800d..8a1e4ae6c 100644 --- a/src/models/jsonld/Musculoskeletal.php +++ b/src/models/jsonld/Musculoskeletal.php @@ -24,128 +24,128 @@ */ class Musculoskeletal extends MetaJsonLd implements MusculoskeletalInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use MusculoskeletalTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Musculoskeletal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Musculoskeletal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of muscles, ligaments and skeletal system.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MusculoskeletalTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Musculoskeletal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Musculoskeletal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to diagnosis and treatment of disorders of muscles, ligaments and skeletal system.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MusculoskeletalExam.php b/src/models/jsonld/MusculoskeletalExam.php index d9248a5dc..614aa98ed 100644 --- a/src/models/jsonld/MusculoskeletalExam.php +++ b/src/models/jsonld/MusculoskeletalExam.php @@ -23,157 +23,157 @@ */ class MusculoskeletalExam extends MetaJsonLd implements MusculoskeletalExamInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use MusculoskeletalExamTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusculoskeletalExam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusculoskeletalExam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Musculoskeletal system clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MusculoskeletalExamTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusculoskeletalExam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusculoskeletalExam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Musculoskeletal system clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Museum.php b/src/models/jsonld/Museum.php index bfe2a339b..91a9bbc42 100644 --- a/src/models/jsonld/Museum.php +++ b/src/models/jsonld/Museum.php @@ -23,215 +23,215 @@ */ class Museum extends MetaJsonLd implements MuseumInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use MuseumTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Museum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Museum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A museum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MuseumTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Museum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Museum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A museum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MusicAlbum.php b/src/models/jsonld/MusicAlbum.php index 93f510cbb..e527017a9 100644 --- a/src/models/jsonld/MusicAlbum.php +++ b/src/models/jsonld/MusicAlbum.php @@ -23,361 +23,361 @@ */ class MusicAlbum extends MetaJsonLd implements MusicAlbumInterface, MusicPlaylistInterface, CreativeWorkInterface, ThingInterface { - use MusicAlbumTrait; - use MusicPlaylistTrait; - use CreativeWorkTrait; - use ThingTrait; + use MusicAlbumTrait; + use MusicPlaylistTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicAlbum'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicAlbum'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicAlbum'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicAlbum'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicPlaylist'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicPlaylist'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A collection of music tracks.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A collection of music tracks.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'albumProductionType' => ['MusicAlbumProductionType'], - 'albumRelease' => ['MusicRelease'], - 'albumReleaseType' => ['MusicAlbumReleaseType'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'byArtist' => ['MusicGroup', 'Person'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numTracks' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'track' => ['ItemList', 'MusicRecording'], - 'tracks' => ['MusicRecording'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'albumProductionType' => ['MusicAlbumProductionType'], + 'albumRelease' => ['MusicRelease'], + 'albumReleaseType' => ['MusicAlbumReleaseType'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'byArtist' => ['MusicGroup', 'Person'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numTracks' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'track' => ['ItemList', 'MusicRecording'], + 'tracks' => ['MusicRecording'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'albumProductionType' => 'Classification of the album by its type of content: soundtrack, live album, studio album, etc.', - 'albumRelease' => 'A release of this album.', - 'albumReleaseType' => 'The kind of release which this album is: single, EP or album.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'byArtist' => 'The artist that performed this album or recording.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numTracks' => 'The number of tracks in this album or playlist.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', - 'tracks' => 'A music recording (track)—usually a single song.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'albumProductionType' => 'Classification of the album by its type of content: soundtrack, live album, studio album, etc.', + 'albumRelease' => 'A release of this album.', + 'albumReleaseType' => 'The kind of release which this album is: single, EP or album.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'byArtist' => 'The artist that performed this album or recording.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numTracks' => 'The number of tracks in this album or playlist.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', + 'tracks' => 'A music recording (track)—usually a single song.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MusicAlbumProductionType.php b/src/models/jsonld/MusicAlbumProductionType.php index 0ff7f05a6..0e2c93663 100644 --- a/src/models/jsonld/MusicAlbumProductionType.php +++ b/src/models/jsonld/MusicAlbumProductionType.php @@ -24,125 +24,125 @@ */ class MusicAlbumProductionType extends MetaJsonLd implements MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicAlbumProductionType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Classification of the album by its type of content: soundtrack, live album, studio album, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicAlbumProductionType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Classification of the album by its type of content: soundtrack, live album, studio album, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MusicAlbumReleaseType.php b/src/models/jsonld/MusicAlbumReleaseType.php index 347c86f04..026ce2ddc 100644 --- a/src/models/jsonld/MusicAlbumReleaseType.php +++ b/src/models/jsonld/MusicAlbumReleaseType.php @@ -23,125 +23,125 @@ */ class MusicAlbumReleaseType extends MetaJsonLd implements MusicAlbumReleaseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MusicAlbumReleaseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicAlbumReleaseType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The kind of release which this album is: single, EP or album.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MusicAlbumReleaseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicAlbumReleaseType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The kind of release which this album is: single, EP or album.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MusicComposition.php b/src/models/jsonld/MusicComposition.php index e827e9e66..e4d279e8b 100644 --- a/src/models/jsonld/MusicComposition.php +++ b/src/models/jsonld/MusicComposition.php @@ -23,366 +23,366 @@ */ class MusicComposition extends MetaJsonLd implements MusicCompositionInterface, CreativeWorkInterface, ThingInterface { - use MusicCompositionTrait; - use CreativeWorkTrait; - use ThingTrait; + use MusicCompositionTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicComposition'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicComposition'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicComposition'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicComposition'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A musical composition.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A musical composition.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'composer' => ['Organization', 'Person'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'firstPerformance' => ['Event'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'includedComposition' => ['MusicComposition'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'iswcCode' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'lyricist' => ['Person'], - 'lyrics' => ['CreativeWork'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicArrangement' => ['MusicComposition'], - 'musicCompositionForm' => ['Text'], - 'musicalKey' => ['Text'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAs' => ['MusicRecording'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'composer' => ['Organization', 'Person'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'firstPerformance' => ['Event'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'includedComposition' => ['MusicComposition'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'iswcCode' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'lyricist' => ['Person'], + 'lyrics' => ['CreativeWork'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicArrangement' => ['MusicComposition'], + 'musicCompositionForm' => ['Text'], + 'musicalKey' => ['Text'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAs' => ['MusicRecording'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'firstPerformance' => 'The date and place the work was first performed.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'includedComposition' => 'Smaller compositions included in this work (e.g. a movement in a symphony).', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'iswcCode' => 'The International Standard Musical Work Code for the composition.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'lyricist' => 'The person who wrote the words.', - 'lyrics' => 'The words in the song.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicArrangement' => 'An arrangement derived from the composition.', - 'musicCompositionForm' => 'The type of composition (e.g. overture, sonata, symphony, etc.).', - 'musicalKey' => 'The key, mode, or scale this composition uses.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAs' => 'An audio recording of the work.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'firstPerformance' => 'The date and place the work was first performed.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'includedComposition' => 'Smaller compositions included in this work (e.g. a movement in a symphony).', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'iswcCode' => 'The International Standard Musical Work Code for the composition.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'lyricist' => 'The person who wrote the words.', + 'lyrics' => 'The words in the song.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicArrangement' => 'An arrangement derived from the composition.', + 'musicCompositionForm' => 'The type of composition (e.g. overture, sonata, symphony, etc.).', + 'musicalKey' => 'The key, mode, or scale this composition uses.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAs' => 'An audio recording of the work.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MusicEvent.php b/src/models/jsonld/MusicEvent.php index 3fe2387d2..0af74ab1d 100644 --- a/src/models/jsonld/MusicEvent.php +++ b/src/models/jsonld/MusicEvent.php @@ -23,204 +23,204 @@ */ class MusicEvent extends MetaJsonLd implements MusicEventInterface, EventInterface, ThingInterface { - use MusicEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Music event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MusicEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Music event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MusicGroup.php b/src/models/jsonld/MusicGroup.php index 03d4c5a8f..f03a16a7f 100644 --- a/src/models/jsonld/MusicGroup.php +++ b/src/models/jsonld/MusicGroup.php @@ -24,267 +24,267 @@ */ class MusicGroup extends MetaJsonLd implements MusicGroupInterface, PerformingGroupInterface, OrganizationInterface, ThingInterface { - use MusicGroupTrait; - use PerformingGroupTrait; - use OrganizationTrait; - use ThingTrait; + use MusicGroupTrait; + use PerformingGroupTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PerformingGroup'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PerformingGroup'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A musical group, such as a band, an orchestra, or a choir. Can also be a solo musician.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A musical group, such as a band, an orchestra, or a choir. Can also be a solo musician.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'album' => ['MusicAlbum'], - 'albums' => ['MusicAlbum'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'musicGroupMember' => ['Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'track' => ['ItemList', 'MusicRecording'], - 'tracks' => ['MusicRecording'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'album' => ['MusicAlbum'], + 'albums' => ['MusicAlbum'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'musicGroupMember' => ['Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'track' => ['ItemList', 'MusicRecording'], + 'tracks' => ['MusicRecording'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'album' => 'A music album.', - 'albums' => 'A collection of music albums.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'musicGroupMember' => 'A member of a music group—for example, John, Paul, George, or Ringo.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', - 'tracks' => 'A music recording (track)—usually a single song.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'album' => 'A music album.', + 'albums' => 'A collection of music albums.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'musicGroupMember' => 'A member of a music group—for example, John, Paul, George, or Ringo.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', + 'tracks' => 'A music recording (track)—usually a single song.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MusicPlaylist.php b/src/models/jsonld/MusicPlaylist.php index 2ecd967f0..f08107a13 100644 --- a/src/models/jsonld/MusicPlaylist.php +++ b/src/models/jsonld/MusicPlaylist.php @@ -23,352 +23,352 @@ */ class MusicPlaylist extends MetaJsonLd implements MusicPlaylistInterface, CreativeWorkInterface, ThingInterface { - use MusicPlaylistTrait; - use CreativeWorkTrait; - use ThingTrait; + use MusicPlaylistTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicPlaylist'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicPlaylist'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicPlaylist'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicPlaylist'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A collection of music tracks in playlist form.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A collection of music tracks in playlist form.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numTracks' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'track' => ['ItemList', 'MusicRecording'], - 'tracks' => ['MusicRecording'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numTracks' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'track' => ['ItemList', 'MusicRecording'], + 'tracks' => ['MusicRecording'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numTracks' => 'The number of tracks in this album or playlist.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', - 'tracks' => 'A music recording (track)—usually a single song.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numTracks' => 'The number of tracks in this album or playlist.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', + 'tracks' => 'A music recording (track)—usually a single song.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MusicRecording.php b/src/models/jsonld/MusicRecording.php index f8c54d742..03ce07e48 100644 --- a/src/models/jsonld/MusicRecording.php +++ b/src/models/jsonld/MusicRecording.php @@ -23,358 +23,358 @@ */ class MusicRecording extends MetaJsonLd implements MusicRecordingInterface, CreativeWorkInterface, ThingInterface { - use MusicRecordingTrait; - use CreativeWorkTrait; - use ThingTrait; + use MusicRecordingTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicRecording'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicRecording'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicRecording'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicRecording'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A music recording (track), usually a single song.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A music recording (track), usually a single song.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'byArtist' => ['MusicGroup', 'Person'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inAlbum' => ['MusicAlbum'], - 'inLanguage' => ['Text', 'Language'], - 'inPlaylist' => ['MusicPlaylist'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'isrcCode' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'recordingOf' => ['MusicComposition'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'byArtist' => ['MusicGroup', 'Person'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inAlbum' => ['MusicAlbum'], + 'inLanguage' => ['Text', 'Language'], + 'inPlaylist' => ['MusicPlaylist'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'isrcCode' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'recordingOf' => ['MusicComposition'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'byArtist' => 'The artist that performed this album or recording.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inAlbum' => 'The album to which this recording belongs.', - '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]].', - 'inPlaylist' => 'The playlist to which this recording belongs.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'isrcCode' => 'The International Standard Recording Code for the recording.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'recordingOf' => 'The composition this track is a recording of.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'byArtist' => 'The artist that performed this album or recording.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inAlbum' => 'The album to which this recording belongs.', + '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]].', + 'inPlaylist' => 'The playlist to which this recording belongs.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'isrcCode' => 'The International Standard Recording Code for the recording.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'recordingOf' => 'The composition this track is a recording of.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MusicRelease.php b/src/models/jsonld/MusicRelease.php index f0d657f27..b234da864 100644 --- a/src/models/jsonld/MusicRelease.php +++ b/src/models/jsonld/MusicRelease.php @@ -23,365 +23,365 @@ */ class MusicRelease extends MetaJsonLd implements MusicReleaseInterface, MusicPlaylistInterface, CreativeWorkInterface, ThingInterface { - use MusicReleaseTrait; - use MusicPlaylistTrait; - use CreativeWorkTrait; - use ThingTrait; + use MusicReleaseTrait; + use MusicPlaylistTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicRelease'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicRelease'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicRelease'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicRelease'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicPlaylist'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicPlaylist'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A MusicRelease is a specific release of a music album.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A MusicRelease is a specific release of a music album.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'catalogNumber' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'creditedTo' => ['Person', 'Organization'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicReleaseFormat' => ['MusicReleaseFormatType'], - 'name' => ['Text'], - 'numTracks' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordLabel' => ['Organization'], - 'recordedAt' => ['Event'], - 'releaseOf' => ['MusicAlbum'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'track' => ['ItemList', 'MusicRecording'], - 'tracks' => ['MusicRecording'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'catalogNumber' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'creditedTo' => ['Person', 'Organization'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicReleaseFormat' => ['MusicReleaseFormatType'], + 'name' => ['Text'], + 'numTracks' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordLabel' => ['Organization'], + 'recordedAt' => ['Event'], + 'releaseOf' => ['MusicAlbum'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'track' => ['ItemList', 'MusicRecording'], + 'tracks' => ['MusicRecording'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'catalogNumber' => 'The catalog number for the release.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'creditedTo' => 'The group the release is credited to if different than the byArtist. For example, Red and Blue is credited to "Stefani Germanotta Band", but by Lady Gaga.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicReleaseFormat' => 'Format of this release (the type of recording media used, i.e. compact disc, digital media, LP, etc.).', - 'name' => 'The name of the item.', - 'numTracks' => 'The number of tracks in this album or playlist.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordLabel' => 'The label that issued the release.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releaseOf' => 'The album this is a release of.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', - 'tracks' => 'A music recording (track)—usually a single song.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'catalogNumber' => 'The catalog number for the release.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'creditedTo' => 'The group the release is credited to if different than the byArtist. For example, Red and Blue is credited to "Stefani Germanotta Band", but by Lady Gaga.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicReleaseFormat' => 'Format of this release (the type of recording media used, i.e. compact disc, digital media, LP, etc.).', + 'name' => 'The name of the item.', + 'numTracks' => 'The number of tracks in this album or playlist.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordLabel' => 'The label that issued the release.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releaseOf' => 'The album this is a release of.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'track' => 'A music recording (track)—usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.', + 'tracks' => 'A music recording (track)—usually a single song.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MusicReleaseFormatType.php b/src/models/jsonld/MusicReleaseFormatType.php index a97ee7d29..ca3eb7b61 100644 --- a/src/models/jsonld/MusicReleaseFormatType.php +++ b/src/models/jsonld/MusicReleaseFormatType.php @@ -24,125 +24,125 @@ */ class MusicReleaseFormatType extends MetaJsonLd implements MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicReleaseFormatType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Format of this release (the type of recording media used, i.e. compact disc, digital media, LP, etc.).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicReleaseFormatType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Format of this release (the type of recording media used, i.e. compact disc, digital media, LP, etc.).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MusicStore.php b/src/models/jsonld/MusicStore.php index ba7773002..7d51364b9 100644 --- a/src/models/jsonld/MusicStore.php +++ b/src/models/jsonld/MusicStore.php @@ -23,331 +23,331 @@ */ class MusicStore extends MetaJsonLd implements MusicStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use MusicStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use MusicStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A music store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A music store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/MusicVenue.php b/src/models/jsonld/MusicVenue.php index 7b9e34da8..f709b51c9 100644 --- a/src/models/jsonld/MusicVenue.php +++ b/src/models/jsonld/MusicVenue.php @@ -23,215 +23,215 @@ */ class MusicVenue extends MetaJsonLd implements MusicVenueInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use MusicVenueTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicVenue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicVenue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A music venue.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use MusicVenueTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicVenue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicVenue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A music venue.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/MusicVideoObject.php b/src/models/jsonld/MusicVideoObject.php index 64bc89773..69c76bc2d 100644 --- a/src/models/jsonld/MusicVideoObject.php +++ b/src/models/jsonld/MusicVideoObject.php @@ -23,383 +23,383 @@ */ class MusicVideoObject extends MetaJsonLd implements MusicVideoObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use MusicVideoObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use MusicVideoObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'MusicVideoObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'MusicVideoObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/MusicVideoObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/MusicVideoObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A music video file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A music video file.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NGO.php b/src/models/jsonld/NGO.php index 0512255c2..77798fb33 100644 --- a/src/models/jsonld/NGO.php +++ b/src/models/jsonld/NGO.php @@ -23,254 +23,254 @@ */ class NGO extends MetaJsonLd implements NGOInterface, OrganizationInterface, ThingInterface { - use NGOTrait; - use OrganizationTrait; - use ThingTrait; + use NGOTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NGO'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NGO'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NGO'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NGO'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Organization: Non-governmental Organization.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Organization: Non-governmental Organization.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NLNonprofitType.php b/src/models/jsonld/NLNonprofitType.php index a77c2e6f8..29abc841c 100644 --- a/src/models/jsonld/NLNonprofitType.php +++ b/src/models/jsonld/NLNonprofitType.php @@ -24,126 +24,126 @@ */ class NLNonprofitType extends MetaJsonLd implements NLNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NLNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NLNonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NLNonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'NLNonprofitType: Non-profit organization type originating from the Netherlands.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NLNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NLNonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NLNonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'NLNonprofitType: Non-profit organization type originating from the Netherlands.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NailSalon.php b/src/models/jsonld/NailSalon.php index 2a483b67b..0479ec4a4 100644 --- a/src/models/jsonld/NailSalon.php +++ b/src/models/jsonld/NailSalon.php @@ -23,331 +23,331 @@ */ class NailSalon extends MetaJsonLd implements NailSalonInterface, HealthAndBeautyBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use NailSalonTrait; - use HealthAndBeautyBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use NailSalonTrait; + use HealthAndBeautyBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NailSalon'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NailSalon'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NailSalon'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NailSalon'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A nail salon.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A nail salon.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NarcoticConsideration.php b/src/models/jsonld/NarcoticConsideration.php index 1606d8fd5..6219aafbe 100644 --- a/src/models/jsonld/NarcoticConsideration.php +++ b/src/models/jsonld/NarcoticConsideration.php @@ -25,126 +25,126 @@ */ class NarcoticConsideration extends MetaJsonLd implements NarcoticConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NarcoticConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NarcoticConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NarcoticConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Item is a narcotic as defined by the [1961 UN convention](https://www.incb.org/incb/en/narcotic-drugs/Yellowlist/yellow-list.html), for example marijuana or heroin.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NarcoticConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NarcoticConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NarcoticConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Item is a narcotic as defined by the [1961 UN convention](https://www.incb.org/incb/en/narcotic-drugs/Yellowlist/yellow-list.html), for example marijuana or heroin.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Neck.php b/src/models/jsonld/Neck.php index eeaa9e1fa..3836b41a4 100644 --- a/src/models/jsonld/Neck.php +++ b/src/models/jsonld/Neck.php @@ -23,157 +23,157 @@ */ class Neck extends MetaJsonLd implements NeckInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use NeckTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Neck'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Neck'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Neck assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NeckTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Neck'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Neck'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Neck assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nerve.php b/src/models/jsonld/Nerve.php index 878595035..8cb0915b0 100644 --- a/src/models/jsonld/Nerve.php +++ b/src/models/jsonld/Nerve.php @@ -24,163 +24,163 @@ */ class Nerve extends MetaJsonLd implements NerveInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use NerveTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nerve'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nerve'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A common pathway for the electrochemical nerve impulses that are transmitted along each of the axons.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'branch' => ['AnatomicalStructure'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'nerveMotor' => ['Muscle'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'sensoryUnit' => ['AnatomicalStructure', 'SuperficialAnatomy'], - 'sourcedFrom' => ['BrainStructure'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'branch' => 'The branches that delineate from the nerve bundle. Not to be confused with [[branchOf]].', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'nerveMotor' => 'The neurological pathway extension that involves muscle control.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'sensoryUnit' => 'The neurological pathway extension that inputs and sends information to the brain or spinal cord.', - 'sourcedFrom' => 'The neurological pathway that originates the neurons.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NerveTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nerve'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nerve'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A common pathway for the electrochemical nerve impulses that are transmitted along each of the axons.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'branch' => ['AnatomicalStructure'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'nerveMotor' => ['Muscle'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'sensoryUnit' => ['AnatomicalStructure', 'SuperficialAnatomy'], + 'sourcedFrom' => ['BrainStructure'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'branch' => 'The branches that delineate from the nerve bundle. Not to be confused with [[branchOf]].', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'nerveMotor' => 'The neurological pathway extension that involves muscle control.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'sensoryUnit' => 'The neurological pathway extension that inputs and sends information to the brain or spinal cord.', + 'sourcedFrom' => 'The neurological pathway that originates the neurons.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Neuro.php b/src/models/jsonld/Neuro.php index eed561385..4d52eded1 100644 --- a/src/models/jsonld/Neuro.php +++ b/src/models/jsonld/Neuro.php @@ -23,157 +23,157 @@ */ class Neuro extends MetaJsonLd implements NeuroInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use NeuroTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Neuro'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Neuro'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Neurological system clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NeuroTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Neuro'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Neuro'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Neurological system clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Neurologic.php b/src/models/jsonld/Neurologic.php index ba178b54f..1fea64879 100644 --- a/src/models/jsonld/Neurologic.php +++ b/src/models/jsonld/Neurologic.php @@ -24,128 +24,128 @@ */ class Neurologic extends MetaJsonLd implements NeurologicInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use NeurologicTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Neurologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Neurologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that studies the nerves and nervous system and its respective disease states.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NeurologicTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Neurologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Neurologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that studies the nerves and nervous system and its respective disease states.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NewCondition.php b/src/models/jsonld/NewCondition.php index fb414abf5..54ae70ab2 100644 --- a/src/models/jsonld/NewCondition.php +++ b/src/models/jsonld/NewCondition.php @@ -23,126 +23,126 @@ */ class NewCondition extends MetaJsonLd implements NewConditionInterface, OfferItemConditionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NewConditionTrait; - use OfferItemConditionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NewCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NewCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is new.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NewConditionTrait; + use OfferItemConditionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NewCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NewCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is new.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NewsArticle.php b/src/models/jsonld/NewsArticle.php index fe0e08af4..962d5527e 100644 --- a/src/models/jsonld/NewsArticle.php +++ b/src/models/jsonld/NewsArticle.php @@ -26,373 +26,373 @@ */ class NewsArticle extends MetaJsonLd implements NewsArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use NewsArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use NewsArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A NewsArticle is an article whose content reports news, or provides background context and supporting materials for understanding the news.\n\nA more detailed overview of [schema.org News markup](/docs/news.html) is also available."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A NewsArticle is an article whose content reports news, or provides background context and supporting materials for understanding the news.\n\nA more detailed overview of [schema.org News markup](/docs/news.html) is also available."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateline' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'printColumn' => ['Text'], - 'printEdition' => ['Text'], - 'printPage' => ['Text'], - 'printSection' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateline' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'printColumn' => ['Text'], + 'printEdition' => ['Text'], + 'printPage' => ['Text'], + 'printSection' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', - 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', - 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', - 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', + 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', + 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', + 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NewsMediaOrganization.php b/src/models/jsonld/NewsMediaOrganization.php index 962633f9d..70eddfe3d 100644 --- a/src/models/jsonld/NewsMediaOrganization.php +++ b/src/models/jsonld/NewsMediaOrganization.php @@ -23,262 +23,262 @@ */ class NewsMediaOrganization extends MetaJsonLd implements NewsMediaOrganizationInterface, OrganizationInterface, ThingInterface { - use NewsMediaOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use NewsMediaOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NewsMediaOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NewsMediaOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NewsMediaOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NewsMediaOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A News/Media organization such as a newspaper or TV station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A News/Media organization such as a newspaper or TV station.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'masthead' => ['URL', 'CreativeWork'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'missionCoveragePrioritiesPolicy' => ['CreativeWork', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'noBylinesPolicy' => ['CreativeWork', 'URL'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'], - 'verificationFactCheckingPolicy' => ['CreativeWork', 'URL'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'masthead' => ['URL', 'CreativeWork'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'missionCoveragePrioritiesPolicy' => ['CreativeWork', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'noBylinesPolicy' => ['CreativeWork', 'URL'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + 'verificationFactCheckingPolicy' => ['CreativeWork', 'URL'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'masthead' => 'For a [[NewsMediaOrganization]], a link to the masthead page or a page listing top editorial management.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'missionCoveragePrioritiesPolicy' => 'For a [[NewsMediaOrganization]], a statement on coverage priorities, including any public agenda or stance on issues.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'noBylinesPolicy' => 'For a [[NewsMediaOrganization]] or other news-related [[Organization]], a statement explaining when authors of articles are not named in bylines.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.', - 'verificationFactCheckingPolicy' => 'Disclosure about verification and fact-checking processes for a [[NewsMediaOrganization]] or other fact-checking [[Organization]].' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'masthead' => 'For a [[NewsMediaOrganization]], a link to the masthead page or a page listing top editorial management.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'missionCoveragePrioritiesPolicy' => 'For a [[NewsMediaOrganization]], a statement on coverage priorities, including any public agenda or stance on issues.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'noBylinesPolicy' => 'For a [[NewsMediaOrganization]] or other news-related [[Organization]], a statement explaining when authors of articles are not named in bylines.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + 'verificationFactCheckingPolicy' => 'Disclosure about verification and fact-checking processes for a [[NewsMediaOrganization]] or other fact-checking [[Organization]].', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Newspaper.php b/src/models/jsonld/Newspaper.php index 1520f7551..a6b743a51 100644 --- a/src/models/jsonld/Newspaper.php +++ b/src/models/jsonld/Newspaper.php @@ -25,356 +25,356 @@ */ class Newspaper extends MetaJsonLd implements NewspaperInterface, PeriodicalInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use NewspaperTrait; - use PeriodicalTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use NewspaperTrait; + use PeriodicalTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Newspaper'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Newspaper'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Newspaper'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Newspaper'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Periodical'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Periodical'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A publication containing information about varied topics that are pertinent to general information, a geographic area, or a specific subject matter (i.e. business, culture, education). Often published daily.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A publication containing information about varied topics that are pertinent to general information, a geographic area, or a specific subject matter (i.e. business, culture, education). Often published daily.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NightClub.php b/src/models/jsonld/NightClub.php index 0d1eac6a3..e4d7036fc 100644 --- a/src/models/jsonld/NightClub.php +++ b/src/models/jsonld/NightClub.php @@ -23,331 +23,331 @@ */ class NightClub extends MetaJsonLd implements NightClubInterface, EntertainmentBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use NightClubTrait; - use EntertainmentBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use NightClubTrait; + use EntertainmentBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NightClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NightClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NightClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NightClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EntertainmentBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EntertainmentBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A nightclub or discotheque.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A nightclub or discotheque.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NoninvasiveProcedure.php b/src/models/jsonld/NoninvasiveProcedure.php index a05c255cb..1a1199c38 100644 --- a/src/models/jsonld/NoninvasiveProcedure.php +++ b/src/models/jsonld/NoninvasiveProcedure.php @@ -23,127 +23,127 @@ */ class NoninvasiveProcedure extends MetaJsonLd implements NoninvasiveProcedureInterface, MedicalProcedureTypeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NoninvasiveProcedureTrait; - use MedicalProcedureTypeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NoninvasiveProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NoninvasiveProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalProcedureType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of medical procedure that involves noninvasive techniques.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NoninvasiveProcedureTrait; + use MedicalProcedureTypeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NoninvasiveProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NoninvasiveProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalProcedureType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of medical procedure that involves noninvasive techniques.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501a.php b/src/models/jsonld/Nonprofit501a.php index 9fb75f4bb..a18f0960c 100644 --- a/src/models/jsonld/Nonprofit501a.php +++ b/src/models/jsonld/Nonprofit501a.php @@ -24,127 +24,127 @@ */ class Nonprofit501a extends MetaJsonLd implements Nonprofit501aInterface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501aTrait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501a'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501a'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501a: Non-profit type referring to Farmers’ Cooperative Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501aTrait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501a'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501a'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501a: Non-profit type referring to Farmers’ Cooperative Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c1.php b/src/models/jsonld/Nonprofit501c1.php index 18251b117..bd9992274 100644 --- a/src/models/jsonld/Nonprofit501c1.php +++ b/src/models/jsonld/Nonprofit501c1.php @@ -25,127 +25,127 @@ */ class Nonprofit501c1 extends MetaJsonLd implements Nonprofit501c1Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c1Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c1'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c1'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c1: Non-profit type referring to Corporations Organized Under Act of Congress, including Federal Credit Unions and National Farm Loan Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c1Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c1'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c1'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c1: Non-profit type referring to Corporations Organized Under Act of Congress, including Federal Credit Unions and National Farm Loan Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c10.php b/src/models/jsonld/Nonprofit501c10.php index ef4c0acdc..021787759 100644 --- a/src/models/jsonld/Nonprofit501c10.php +++ b/src/models/jsonld/Nonprofit501c10.php @@ -24,127 +24,127 @@ */ class Nonprofit501c10 extends MetaJsonLd implements Nonprofit501c10Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c10Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c10'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c10'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c10: Non-profit type referring to Domestic Fraternal Societies and Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c10Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c10'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c10'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c10: Non-profit type referring to Domestic Fraternal Societies and Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c11.php b/src/models/jsonld/Nonprofit501c11.php index 89e071fea..beda2263c 100644 --- a/src/models/jsonld/Nonprofit501c11.php +++ b/src/models/jsonld/Nonprofit501c11.php @@ -24,127 +24,127 @@ */ class Nonprofit501c11 extends MetaJsonLd implements Nonprofit501c11Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c11Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c11'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c11'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c11: Non-profit type referring to Teachers\' Retirement Fund Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c11Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c11'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c11'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c11: Non-profit type referring to Teachers\' Retirement Fund Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c12.php b/src/models/jsonld/Nonprofit501c12.php index 502b2b491..ddb4096a9 100644 --- a/src/models/jsonld/Nonprofit501c12.php +++ b/src/models/jsonld/Nonprofit501c12.php @@ -25,127 +25,127 @@ */ class Nonprofit501c12 extends MetaJsonLd implements Nonprofit501c12Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c12Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c12'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c12'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c12: Non-profit type referring to Benevolent Life Insurance Associations, Mutual Ditch or Irrigation Companies, Mutual or Cooperative Telephone Companies.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c12Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c12'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c12'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c12: Non-profit type referring to Benevolent Life Insurance Associations, Mutual Ditch or Irrigation Companies, Mutual or Cooperative Telephone Companies.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c13.php b/src/models/jsonld/Nonprofit501c13.php index 6c79ce7eb..d43898984 100644 --- a/src/models/jsonld/Nonprofit501c13.php +++ b/src/models/jsonld/Nonprofit501c13.php @@ -23,127 +23,127 @@ */ class Nonprofit501c13 extends MetaJsonLd implements Nonprofit501c13Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c13Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c13'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c13'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c13: Non-profit type referring to Cemetery Companies.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c13Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c13'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c13'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c13: Non-profit type referring to Cemetery Companies.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c14.php b/src/models/jsonld/Nonprofit501c14.php index 8d11bed02..9c7b5be51 100644 --- a/src/models/jsonld/Nonprofit501c14.php +++ b/src/models/jsonld/Nonprofit501c14.php @@ -24,127 +24,127 @@ */ class Nonprofit501c14 extends MetaJsonLd implements Nonprofit501c14Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c14Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c14'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c14'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c14: Non-profit type referring to State-Chartered Credit Unions, Mutual Reserve Funds.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c14Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c14'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c14'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c14: Non-profit type referring to State-Chartered Credit Unions, Mutual Reserve Funds.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c15.php b/src/models/jsonld/Nonprofit501c15.php index 11a09e3ff..b3f293d8a 100644 --- a/src/models/jsonld/Nonprofit501c15.php +++ b/src/models/jsonld/Nonprofit501c15.php @@ -24,127 +24,127 @@ */ class Nonprofit501c15 extends MetaJsonLd implements Nonprofit501c15Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c15Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c15'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c15'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c15: Non-profit type referring to Mutual Insurance Companies or Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c15Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c15'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c15'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c15: Non-profit type referring to Mutual Insurance Companies or Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c16.php b/src/models/jsonld/Nonprofit501c16.php index 5543e3c9e..d7ddf0b06 100644 --- a/src/models/jsonld/Nonprofit501c16.php +++ b/src/models/jsonld/Nonprofit501c16.php @@ -24,127 +24,127 @@ */ class Nonprofit501c16 extends MetaJsonLd implements Nonprofit501c16Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c16Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c16'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c16'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c16: Non-profit type referring to Cooperative Organizations to Finance Crop Operations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c16Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c16'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c16'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c16: Non-profit type referring to Cooperative Organizations to Finance Crop Operations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c17.php b/src/models/jsonld/Nonprofit501c17.php index d3e153b6d..8221e1111 100644 --- a/src/models/jsonld/Nonprofit501c17.php +++ b/src/models/jsonld/Nonprofit501c17.php @@ -24,127 +24,127 @@ */ class Nonprofit501c17 extends MetaJsonLd implements Nonprofit501c17Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c17Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c17'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c17'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c17: Non-profit type referring to Supplemental Unemployment Benefit Trusts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c17Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c17'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c17'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c17: Non-profit type referring to Supplemental Unemployment Benefit Trusts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c18.php b/src/models/jsonld/Nonprofit501c18.php index f13b70196..d447f2f40 100644 --- a/src/models/jsonld/Nonprofit501c18.php +++ b/src/models/jsonld/Nonprofit501c18.php @@ -24,127 +24,127 @@ */ class Nonprofit501c18 extends MetaJsonLd implements Nonprofit501c18Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c18Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c18'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c18'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c18: Non-profit type referring to Employee Funded Pension Trust (created before 25 June 1959).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c18Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c18'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c18'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c18: Non-profit type referring to Employee Funded Pension Trust (created before 25 June 1959).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c19.php b/src/models/jsonld/Nonprofit501c19.php index 4fb8a6bbc..55c408a92 100644 --- a/src/models/jsonld/Nonprofit501c19.php +++ b/src/models/jsonld/Nonprofit501c19.php @@ -24,127 +24,127 @@ */ class Nonprofit501c19 extends MetaJsonLd implements Nonprofit501c19Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c19Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c19'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c19'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c19: Non-profit type referring to Post or Organization of Past or Present Members of the Armed Forces.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c19Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c19'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c19'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c19: Non-profit type referring to Post or Organization of Past or Present Members of the Armed Forces.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c2.php b/src/models/jsonld/Nonprofit501c2.php index f73f3482d..bf0258b4d 100644 --- a/src/models/jsonld/Nonprofit501c2.php +++ b/src/models/jsonld/Nonprofit501c2.php @@ -24,127 +24,127 @@ */ class Nonprofit501c2 extends MetaJsonLd implements Nonprofit501c2Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c2Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c2'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c2'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c2: Non-profit type referring to Title-holding Corporations for Exempt Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c2Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c2'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c2'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c2: Non-profit type referring to Title-holding Corporations for Exempt Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c20.php b/src/models/jsonld/Nonprofit501c20.php index 1173f1a1f..6d66ad50b 100644 --- a/src/models/jsonld/Nonprofit501c20.php +++ b/src/models/jsonld/Nonprofit501c20.php @@ -24,127 +24,127 @@ */ class Nonprofit501c20 extends MetaJsonLd implements Nonprofit501c20Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c20Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c20'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c20'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c20: Non-profit type referring to Group Legal Services Plan Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c20Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c20'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c20'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c20: Non-profit type referring to Group Legal Services Plan Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c21.php b/src/models/jsonld/Nonprofit501c21.php index 2beb0122c..3245d2064 100644 --- a/src/models/jsonld/Nonprofit501c21.php +++ b/src/models/jsonld/Nonprofit501c21.php @@ -23,127 +23,127 @@ */ class Nonprofit501c21 extends MetaJsonLd implements Nonprofit501c21Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c21Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c21'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c21'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c21: Non-profit type referring to Black Lung Benefit Trusts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c21Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c21'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c21'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c21: Non-profit type referring to Black Lung Benefit Trusts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c22.php b/src/models/jsonld/Nonprofit501c22.php index 8e9f750d8..db4a6c963 100644 --- a/src/models/jsonld/Nonprofit501c22.php +++ b/src/models/jsonld/Nonprofit501c22.php @@ -24,127 +24,127 @@ */ class Nonprofit501c22 extends MetaJsonLd implements Nonprofit501c22Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c22Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c22'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c22'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c22: Non-profit type referring to Withdrawal Liability Payment Funds.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c22Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c22'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c22'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c22: Non-profit type referring to Withdrawal Liability Payment Funds.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c23.php b/src/models/jsonld/Nonprofit501c23.php index 8b5003139..129e68b20 100644 --- a/src/models/jsonld/Nonprofit501c23.php +++ b/src/models/jsonld/Nonprofit501c23.php @@ -23,127 +23,127 @@ */ class Nonprofit501c23 extends MetaJsonLd implements Nonprofit501c23Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c23Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c23'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c23'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c23: Non-profit type referring to Veterans Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c23Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c23'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c23'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c23: Non-profit type referring to Veterans Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c24.php b/src/models/jsonld/Nonprofit501c24.php index a76eae0a0..5e263f953 100644 --- a/src/models/jsonld/Nonprofit501c24.php +++ b/src/models/jsonld/Nonprofit501c24.php @@ -23,127 +23,127 @@ */ class Nonprofit501c24 extends MetaJsonLd implements Nonprofit501c24Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c24Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c24'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c24'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c24: Non-profit type referring to Section 4049 ERISA Trusts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c24Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c24'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c24'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c24: Non-profit type referring to Section 4049 ERISA Trusts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c25.php b/src/models/jsonld/Nonprofit501c25.php index e601e6e02..e15e14b3b 100644 --- a/src/models/jsonld/Nonprofit501c25.php +++ b/src/models/jsonld/Nonprofit501c25.php @@ -24,127 +24,127 @@ */ class Nonprofit501c25 extends MetaJsonLd implements Nonprofit501c25Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c25Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c25'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c25'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c25: Non-profit type referring to Real Property Title-Holding Corporations or Trusts with Multiple Parents.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c25Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c25'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c25'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c25: Non-profit type referring to Real Property Title-Holding Corporations or Trusts with Multiple Parents.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c26.php b/src/models/jsonld/Nonprofit501c26.php index 0c12163dd..232db0468 100644 --- a/src/models/jsonld/Nonprofit501c26.php +++ b/src/models/jsonld/Nonprofit501c26.php @@ -24,127 +24,127 @@ */ class Nonprofit501c26 extends MetaJsonLd implements Nonprofit501c26Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c26Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c26'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c26'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c26: Non-profit type referring to State-Sponsored Organizations Providing Health Coverage for High-Risk Individuals.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c26Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c26'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c26'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c26: Non-profit type referring to State-Sponsored Organizations Providing Health Coverage for High-Risk Individuals.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c27.php b/src/models/jsonld/Nonprofit501c27.php index c5c1b3e61..19ee887ca 100644 --- a/src/models/jsonld/Nonprofit501c27.php +++ b/src/models/jsonld/Nonprofit501c27.php @@ -24,127 +24,127 @@ */ class Nonprofit501c27 extends MetaJsonLd implements Nonprofit501c27Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c27Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c27'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c27'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c27: Non-profit type referring to State-Sponsored Workers\' Compensation Reinsurance Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c27Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c27'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c27'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c27: Non-profit type referring to State-Sponsored Workers\' Compensation Reinsurance Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c28.php b/src/models/jsonld/Nonprofit501c28.php index b877b3350..85ae0b8f9 100644 --- a/src/models/jsonld/Nonprofit501c28.php +++ b/src/models/jsonld/Nonprofit501c28.php @@ -24,127 +24,127 @@ */ class Nonprofit501c28 extends MetaJsonLd implements Nonprofit501c28Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c28Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c28'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c28'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c28: Non-profit type referring to National Railroad Retirement Investment Trusts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c28Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c28'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c28'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c28: Non-profit type referring to National Railroad Retirement Investment Trusts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c3.php b/src/models/jsonld/Nonprofit501c3.php index 1637abafe..085a6eb92 100644 --- a/src/models/jsonld/Nonprofit501c3.php +++ b/src/models/jsonld/Nonprofit501c3.php @@ -26,127 +26,127 @@ */ class Nonprofit501c3 extends MetaJsonLd implements Nonprofit501c3Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c3Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c3'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c3'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c3: Non-profit type referring to Religious, Educational, Charitable, Scientific, Literary, Testing for Public Safety, Fostering National or International Amateur Sports Competition, or Prevention of Cruelty to Children or Animals Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c3Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c3'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c3'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c3: Non-profit type referring to Religious, Educational, Charitable, Scientific, Literary, Testing for Public Safety, Fostering National or International Amateur Sports Competition, or Prevention of Cruelty to Children or Animals Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c4.php b/src/models/jsonld/Nonprofit501c4.php index 451d479c8..18c28757f 100644 --- a/src/models/jsonld/Nonprofit501c4.php +++ b/src/models/jsonld/Nonprofit501c4.php @@ -24,127 +24,127 @@ */ class Nonprofit501c4 extends MetaJsonLd implements Nonprofit501c4Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c4Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c4'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c4'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c4: Non-profit type referring to Civic Leagues, Social Welfare Organizations, and Local Associations of Employees.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c4Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c4'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c4'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c4: Non-profit type referring to Civic Leagues, Social Welfare Organizations, and Local Associations of Employees.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c5.php b/src/models/jsonld/Nonprofit501c5.php index 1c1635818..2981061b7 100644 --- a/src/models/jsonld/Nonprofit501c5.php +++ b/src/models/jsonld/Nonprofit501c5.php @@ -24,127 +24,127 @@ */ class Nonprofit501c5 extends MetaJsonLd implements Nonprofit501c5Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c5Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c5'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c5'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c5: Non-profit type referring to Labor, Agricultural and Horticultural Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c5Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c5'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c5'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c5: Non-profit type referring to Labor, Agricultural and Horticultural Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c6.php b/src/models/jsonld/Nonprofit501c6.php index ba1ea9e40..153497d5b 100644 --- a/src/models/jsonld/Nonprofit501c6.php +++ b/src/models/jsonld/Nonprofit501c6.php @@ -24,127 +24,127 @@ */ class Nonprofit501c6 extends MetaJsonLd implements Nonprofit501c6Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c6Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c6'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c6'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c6: Non-profit type referring to Business Leagues, Chambers of Commerce, Real Estate Boards.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c6Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c6'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c6'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c6: Non-profit type referring to Business Leagues, Chambers of Commerce, Real Estate Boards.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c7.php b/src/models/jsonld/Nonprofit501c7.php index dfd32634e..417aaa68c 100644 --- a/src/models/jsonld/Nonprofit501c7.php +++ b/src/models/jsonld/Nonprofit501c7.php @@ -23,127 +23,127 @@ */ class Nonprofit501c7 extends MetaJsonLd implements Nonprofit501c7Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c7Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c7'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c7'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c7: Non-profit type referring to Social and Recreational Clubs.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c7Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c7'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c7'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c7: Non-profit type referring to Social and Recreational Clubs.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c8.php b/src/models/jsonld/Nonprofit501c8.php index 3f06699cf..7055a84c8 100644 --- a/src/models/jsonld/Nonprofit501c8.php +++ b/src/models/jsonld/Nonprofit501c8.php @@ -24,127 +24,127 @@ */ class Nonprofit501c8 extends MetaJsonLd implements Nonprofit501c8Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c8Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c8'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c8'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c8: Non-profit type referring to Fraternal Beneficiary Societies and Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c8Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c8'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c8'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c8: Non-profit type referring to Fraternal Beneficiary Societies and Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501c9.php b/src/models/jsonld/Nonprofit501c9.php index 446094afb..f218c22ce 100644 --- a/src/models/jsonld/Nonprofit501c9.php +++ b/src/models/jsonld/Nonprofit501c9.php @@ -24,127 +24,127 @@ */ class Nonprofit501c9 extends MetaJsonLd implements Nonprofit501c9Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501c9Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501c9'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501c9'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501c9: Non-profit type referring to Voluntary Employee Beneficiary Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501c9Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501c9'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501c9'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501c9: Non-profit type referring to Voluntary Employee Beneficiary Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501d.php b/src/models/jsonld/Nonprofit501d.php index 4d6fd69b6..587916129 100644 --- a/src/models/jsonld/Nonprofit501d.php +++ b/src/models/jsonld/Nonprofit501d.php @@ -24,127 +24,127 @@ */ class Nonprofit501d extends MetaJsonLd implements Nonprofit501dInterface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501dTrait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501d'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501d'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501d: Non-profit type referring to Religious and Apostolic Associations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501dTrait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501d'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501d'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501d: Non-profit type referring to Religious and Apostolic Associations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501e.php b/src/models/jsonld/Nonprofit501e.php index ffe573625..7f9f1cf31 100644 --- a/src/models/jsonld/Nonprofit501e.php +++ b/src/models/jsonld/Nonprofit501e.php @@ -24,127 +24,127 @@ */ class Nonprofit501e extends MetaJsonLd implements Nonprofit501eInterface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501eTrait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501e'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501e'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501e: Non-profit type referring to Cooperative Hospital Service Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501eTrait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501e'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501e'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501e: Non-profit type referring to Cooperative Hospital Service Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501f.php b/src/models/jsonld/Nonprofit501f.php index eeaa6490e..c8105fe1f 100644 --- a/src/models/jsonld/Nonprofit501f.php +++ b/src/models/jsonld/Nonprofit501f.php @@ -24,127 +24,127 @@ */ class Nonprofit501f extends MetaJsonLd implements Nonprofit501fInterface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501fTrait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501f'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501f'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501f: Non-profit type referring to Cooperative Service Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501fTrait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501f'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501f'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501f: Non-profit type referring to Cooperative Service Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501k.php b/src/models/jsonld/Nonprofit501k.php index 5ffba3660..ae6db24a7 100644 --- a/src/models/jsonld/Nonprofit501k.php +++ b/src/models/jsonld/Nonprofit501k.php @@ -23,127 +23,127 @@ */ class Nonprofit501k extends MetaJsonLd implements Nonprofit501kInterface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501kTrait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501k'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501k'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501k: Non-profit type referring to Child Care Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501kTrait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501k'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501k'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501k: Non-profit type referring to Child Care Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501n.php b/src/models/jsonld/Nonprofit501n.php index c9868fb1e..8d08bc793 100644 --- a/src/models/jsonld/Nonprofit501n.php +++ b/src/models/jsonld/Nonprofit501n.php @@ -23,127 +23,127 @@ */ class Nonprofit501n extends MetaJsonLd implements Nonprofit501nInterface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501nTrait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501n'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501n'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501n: Non-profit type referring to Charitable Risk Pools.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501nTrait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501n'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501n'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501n: Non-profit type referring to Charitable Risk Pools.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit501q.php b/src/models/jsonld/Nonprofit501q.php index 3ea927560..ad483c15a 100644 --- a/src/models/jsonld/Nonprofit501q.php +++ b/src/models/jsonld/Nonprofit501q.php @@ -24,127 +24,127 @@ */ class Nonprofit501q extends MetaJsonLd implements Nonprofit501qInterface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit501qTrait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit501q'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit501q'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit501q: Non-profit type referring to Credit Counseling Organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit501qTrait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit501q'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit501q'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit501q: Non-profit type referring to Credit Counseling Organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nonprofit527.php b/src/models/jsonld/Nonprofit527.php index b6cf99ac1..d4c6742b3 100644 --- a/src/models/jsonld/Nonprofit527.php +++ b/src/models/jsonld/Nonprofit527.php @@ -23,127 +23,127 @@ */ class Nonprofit527 extends MetaJsonLd implements Nonprofit527Interface, USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use Nonprofit527Trait; - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nonprofit527'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nonprofit527'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'USNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nonprofit527: Non-profit type referring to political organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use Nonprofit527Trait; + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nonprofit527'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nonprofit527'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'USNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nonprofit527: Non-profit type referring to political organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NonprofitANBI.php b/src/models/jsonld/NonprofitANBI.php index a642c4c67..4dadca4cc 100644 --- a/src/models/jsonld/NonprofitANBI.php +++ b/src/models/jsonld/NonprofitANBI.php @@ -24,127 +24,127 @@ */ class NonprofitANBI extends MetaJsonLd implements NonprofitANBIInterface, NLNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NonprofitANBITrait; - use NLNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NonprofitANBI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NonprofitANBI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NLNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'NonprofitANBI: Non-profit type referring to a Public Benefit Organization (NL).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NonprofitANBITrait; + use NLNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NonprofitANBI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NonprofitANBI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NLNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'NonprofitANBI: Non-profit type referring to a Public Benefit Organization (NL).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NonprofitSBBI.php b/src/models/jsonld/NonprofitSBBI.php index dab5baf08..421f3cc3a 100644 --- a/src/models/jsonld/NonprofitSBBI.php +++ b/src/models/jsonld/NonprofitSBBI.php @@ -24,127 +24,127 @@ */ class NonprofitSBBI extends MetaJsonLd implements NonprofitSBBIInterface, NLNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NonprofitSBBITrait; - use NLNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NonprofitSBBI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NonprofitSBBI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NLNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'NonprofitSBBI: Non-profit type referring to a Social Interest Promoting Institution (NL).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NonprofitSBBITrait; + use NLNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NonprofitSBBI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NonprofitSBBI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NLNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'NonprofitSBBI: Non-profit type referring to a Social Interest Promoting Institution (NL).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NonprofitType.php b/src/models/jsonld/NonprofitType.php index e1f0fe45c..0446a9c90 100644 --- a/src/models/jsonld/NonprofitType.php +++ b/src/models/jsonld/NonprofitType.php @@ -24,125 +24,125 @@ */ class NonprofitType extends MetaJsonLd implements NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'NonprofitType enumerates several kinds of official non-profit types of which a non-profit organization can be.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'NonprofitType enumerates several kinds of official non-profit types of which a non-profit organization can be.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nose.php b/src/models/jsonld/Nose.php index bbed8df8e..f96be2a11 100644 --- a/src/models/jsonld/Nose.php +++ b/src/models/jsonld/Nose.php @@ -23,157 +23,157 @@ */ class Nose extends MetaJsonLd implements NoseInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use NoseTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nose'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nose'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nose function assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NoseTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nose'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nose'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nose function assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NotInForce.php b/src/models/jsonld/NotInForce.php index 7188db4fe..31819a8eb 100644 --- a/src/models/jsonld/NotInForce.php +++ b/src/models/jsonld/NotInForce.php @@ -23,127 +23,127 @@ */ class NotInForce extends MetaJsonLd implements NotInForceInterface, LegalForceStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NotInForceTrait; - use LegalForceStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NotInForce'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NotInForce'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalForceStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that a legislation is currently not in force.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NotInForceTrait; + use LegalForceStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NotInForce'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NotInForce'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalForceStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that a legislation is currently not in force.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/NotYetRecruiting.php b/src/models/jsonld/NotYetRecruiting.php index e5fecfc87..d7ea0304a 100644 --- a/src/models/jsonld/NotYetRecruiting.php +++ b/src/models/jsonld/NotYetRecruiting.php @@ -23,127 +23,127 @@ */ class NotYetRecruiting extends MetaJsonLd implements NotYetRecruitingInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use NotYetRecruitingTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NotYetRecruiting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NotYetRecruiting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Not yet recruiting.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NotYetRecruitingTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NotYetRecruiting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NotYetRecruiting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Not yet recruiting.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Notary.php b/src/models/jsonld/Notary.php index 26f10c7da..91c9fa695 100644 --- a/src/models/jsonld/Notary.php +++ b/src/models/jsonld/Notary.php @@ -23,331 +23,331 @@ */ class Notary extends MetaJsonLd implements NotaryInterface, LegalServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use NotaryTrait; - use LegalServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use NotaryTrait; + use LegalServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Notary'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Notary'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Notary'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Notary'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A notary.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A notary.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NoteDigitalDocument.php b/src/models/jsonld/NoteDigitalDocument.php index 6c67c63a8..886eb43d5 100644 --- a/src/models/jsonld/NoteDigitalDocument.php +++ b/src/models/jsonld/NoteDigitalDocument.php @@ -23,349 +23,349 @@ */ class NoteDigitalDocument extends MetaJsonLd implements NoteDigitalDocumentInterface, DigitalDocumentInterface, CreativeWorkInterface, ThingInterface { - use NoteDigitalDocumentTrait; - use DigitalDocumentTrait; - use CreativeWorkTrait; - use ThingTrait; + use NoteDigitalDocumentTrait; + use DigitalDocumentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NoteDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NoteDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NoteDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NoteDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A file containing a note, primarily for the author.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A file containing a note, primarily for the author.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Number.php b/src/models/jsonld/Number.php index 0bd0c604c..3ed2f53a8 100644 --- a/src/models/jsonld/Number.php +++ b/src/models/jsonld/Number.php @@ -27,98 +27,98 @@ */ class Number extends MetaJsonLd implements NumberInterface { - use NumberTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Number'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Number'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data type: Number.\n\nUsage guidelines:\n\n* Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols.\n* Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NumberTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Number'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Number'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data type: Number.\n\nUsage guidelines:\n\n* Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols.\n* Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Nursing.php b/src/models/jsonld/Nursing.php index d5e429ae7..55d294ffe 100644 --- a/src/models/jsonld/Nursing.php +++ b/src/models/jsonld/Nursing.php @@ -24,338 +24,338 @@ */ class Nursing extends MetaJsonLd implements NursingInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use NursingTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use NursingTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Nursing'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Nursing'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Nursing'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Nursing'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A health profession of a person formally educated and trained in the care of the sick or infirm person.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A health profession of a person formally educated and trained in the care of the sick or infirm person.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/NutritionInformation.php b/src/models/jsonld/NutritionInformation.php index 996528e62..84f12c564 100644 --- a/src/models/jsonld/NutritionInformation.php +++ b/src/models/jsonld/NutritionInformation.php @@ -23,147 +23,147 @@ */ class NutritionInformation extends MetaJsonLd implements NutritionInformationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use NutritionInformationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'NutritionInformation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/NutritionInformation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Nutritional information about the recipe.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'calories' => ['Energy'], - 'carbohydrateContent' => ['Mass'], - 'cholesterolContent' => ['Mass'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'fatContent' => ['Mass'], - 'fiberContent' => ['Mass'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'proteinContent' => ['Mass'], - 'sameAs' => ['URL'], - 'saturatedFatContent' => ['Mass'], - 'servingSize' => ['Text'], - 'sodiumContent' => ['Mass'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'sugarContent' => ['Mass'], - 'transFatContent' => ['Mass'], - 'unsaturatedFatContent' => ['Mass'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'calories' => 'The number of calories.', - 'carbohydrateContent' => 'The number of grams of carbohydrates.', - 'cholesterolContent' => 'The number of milligrams of cholesterol.', - 'description' => 'A description of the item.', - '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.', - 'fatContent' => 'The number of grams of fat.', - 'fiberContent' => 'The number of grams of fiber.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'proteinContent' => 'The number of grams of protein.', - '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.', - 'saturatedFatContent' => 'The number of grams of saturated fat.', - 'servingSize' => 'The serving size, in terms of the number of volume or mass.', - 'sodiumContent' => 'The number of milligrams of sodium.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'sugarContent' => 'The number of grams of sugar.', - 'transFatContent' => 'The number of grams of trans fat.', - 'unsaturatedFatContent' => 'The number of grams of unsaturated fat.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use NutritionInformationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'NutritionInformation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/NutritionInformation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Nutritional information about the recipe.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'calories' => ['Energy'], + 'carbohydrateContent' => ['Mass'], + 'cholesterolContent' => ['Mass'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'fatContent' => ['Mass'], + 'fiberContent' => ['Mass'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'proteinContent' => ['Mass'], + 'sameAs' => ['URL'], + 'saturatedFatContent' => ['Mass'], + 'servingSize' => ['Text'], + 'sodiumContent' => ['Mass'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'sugarContent' => ['Mass'], + 'transFatContent' => ['Mass'], + 'unsaturatedFatContent' => ['Mass'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'calories' => 'The number of calories.', + 'carbohydrateContent' => 'The number of grams of carbohydrates.', + 'cholesterolContent' => 'The number of milligrams of cholesterol.', + 'description' => 'A description of the item.', + '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.', + 'fatContent' => 'The number of grams of fat.', + 'fiberContent' => 'The number of grams of fiber.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'proteinContent' => 'The number of grams of protein.', + '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.', + 'saturatedFatContent' => 'The number of grams of saturated fat.', + 'servingSize' => 'The serving size, in terms of the number of volume or mass.', + 'sodiumContent' => 'The number of milligrams of sodium.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'sugarContent' => 'The number of grams of sugar.', + 'transFatContent' => 'The number of grams of trans fat.', + 'unsaturatedFatContent' => 'The number of grams of unsaturated fat.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OTC.php b/src/models/jsonld/OTC.php index 606b9c64e..164b9264a 100644 --- a/src/models/jsonld/OTC.php +++ b/src/models/jsonld/OTC.php @@ -24,127 +24,127 @@ */ class OTC extends MetaJsonLd implements OTCInterface, DrugPrescriptionStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OTCTrait; - use DrugPrescriptionStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OTC'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OTC'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPrescriptionStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The character of a medical substance, typically a medicine, of being available over the counter or not.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OTCTrait; + use DrugPrescriptionStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OTC'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OTC'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPrescriptionStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The character of a medical substance, typically a medicine, of being available over the counter or not.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Observation.php b/src/models/jsonld/Observation.php index 52720fbcb..f5c7ae823 100644 --- a/src/models/jsonld/Observation.php +++ b/src/models/jsonld/Observation.php @@ -32,132 +32,132 @@ */ class Observation extends MetaJsonLd implements ObservationInterface, IntangibleInterface, ThingInterface { - use ObservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Observation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Observation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Instances of the class [[Observation]] are used to specify observations about an entity (which may or may not be an instance of a [[StatisticalPopulation]]), at a particular time. The principal properties of an [[Observation]] are [[observedNode]], [[measuredProperty]], [[measuredValue]] (or [[median]], etc.) and [[observationDate]] ([[measuredProperty]] properties can, but need not always, be W3C RDF Data Cube \"measure properties\", as in the [lifeExpectancy example](https://www.w3.org/TR/vocab-data-cube/#dsd-example)).\nSee also [[StatisticalPopulation]], and the [data and datasets](/docs/data-and-datasets.html) overview for more details.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'marginOfError' => ['QuantitativeValue'], - 'measuredProperty' => ['Property'], - 'measuredValue' => ['DataType'], - 'name' => ['Text'], - 'observationDate' => ['DateTime'], - 'observedNode' => ['StatisticalPopulation'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'marginOfError' => 'A marginOfError for an [[Observation]].', - 'measuredProperty' => 'The measuredProperty of an [[Observation]], either a schema.org property, a property from other RDF-compatible systems, e.g. W3C RDF Data Cube, or schema.org extensions such as [GS1\'s](https://www.gs1.org/voc/?show=properties).', - 'measuredValue' => 'The measuredValue of an [[Observation]].', - 'name' => 'The name of the item.', - 'observationDate' => 'The observationDate of an [[Observation]].', - 'observedNode' => 'The observedNode of an [[Observation]], often a [[StatisticalPopulation]].', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ObservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Observation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Observation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Instances of the class [[Observation]] are used to specify observations about an entity (which may or may not be an instance of a [[StatisticalPopulation]]), at a particular time. The principal properties of an [[Observation]] are [[observedNode]], [[measuredProperty]], [[measuredValue]] (or [[median]], etc.) and [[observationDate]] ([[measuredProperty]] properties can, but need not always, be W3C RDF Data Cube \"measure properties\", as in the [lifeExpectancy example](https://www.w3.org/TR/vocab-data-cube/#dsd-example)).\nSee also [[StatisticalPopulation]], and the [data and datasets](/docs/data-and-datasets.html) overview for more details.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'marginOfError' => ['QuantitativeValue'], + 'measuredProperty' => ['Property'], + 'measuredValue' => ['DataType'], + 'name' => ['Text'], + 'observationDate' => ['DateTime'], + 'observedNode' => ['StatisticalPopulation'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'marginOfError' => 'A marginOfError for an [[Observation]].', + 'measuredProperty' => 'The measuredProperty of an [[Observation]], either a schema.org property, a property from other RDF-compatible systems, e.g. W3C RDF Data Cube, or schema.org extensions such as [GS1\'s](https://www.gs1.org/voc/?show=properties).', + 'measuredValue' => 'The measuredValue of an [[Observation]].', + 'name' => 'The name of the item.', + 'observationDate' => 'The observationDate of an [[Observation]].', + 'observedNode' => 'The observedNode of an [[Observation]], often a [[StatisticalPopulation]].', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Observational.php b/src/models/jsonld/Observational.php index 449dfa58a..e531d9e4d 100644 --- a/src/models/jsonld/Observational.php +++ b/src/models/jsonld/Observational.php @@ -23,127 +23,127 @@ */ class Observational extends MetaJsonLd implements ObservationalInterface, MedicalObservationalStudyDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ObservationalTrait; - use MedicalObservationalStudyDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Observational'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Observational'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An observational study design.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ObservationalTrait; + use MedicalObservationalStudyDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Observational'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Observational'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An observational study design.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Obstetric.php b/src/models/jsonld/Obstetric.php index 69c48a455..c95453b17 100644 --- a/src/models/jsonld/Obstetric.php +++ b/src/models/jsonld/Obstetric.php @@ -24,338 +24,338 @@ */ class Obstetric extends MetaJsonLd implements ObstetricInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use ObstetricTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use ObstetricTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Obstetric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Obstetric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Obstetric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Obstetric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that specializes in the care of women during the prenatal and postnatal care and with the delivery of the child.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that specializes in the care of women during the prenatal and postnatal care and with the delivery of the child.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Occupation.php b/src/models/jsonld/Occupation.php index 7fbb412a9..fc7fe1053 100644 --- a/src/models/jsonld/Occupation.php +++ b/src/models/jsonld/Occupation.php @@ -23,138 +23,138 @@ */ class Occupation extends MetaJsonLd implements OccupationInterface, IntangibleInterface, ThingInterface { - use OccupationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Occupation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Occupation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A profession, may involve prolonged training and/or a formal qualification.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'educationRequirements' => ['EducationalOccupationalCredential', 'Text'], - 'estimatedSalary' => ['MonetaryAmount', 'Number', 'MonetaryAmountDistribution'], - 'experienceRequirements' => ['OccupationalExperienceRequirements', 'Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'occupationLocation' => ['AdministrativeArea'], - 'occupationalCategory' => ['Text', 'CategoryCode'], - 'potentialAction' => ['Action'], - 'qualifications' => ['EducationalOccupationalCredential', 'Text'], - 'responsibilities' => ['Text'], - 'sameAs' => ['URL'], - 'skills' => ['Text', 'DefinedTerm'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'educationRequirements' => 'Educational background needed for the position or Occupation.', - 'estimatedSalary' => 'An estimated salary for a job posting or occupation, based on a variety of variables including, but not limited to industry, job title, and location. Estimated salaries are often computed by outside organizations rather than the hiring organization, who may not have committed to the estimated value.', - 'experienceRequirements' => 'Description of skills and experience needed for the position or Occupation.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'occupationLocation' => ' The region/country for which this occupational description is appropriate. Note that educational requirements and qualifications can vary between jurisdictions.', - 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'qualifications' => 'Specific qualifications required for this role or Occupation.', - 'responsibilities' => 'Responsibilities associated with this role or Occupation.', - '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.', - 'skills' => 'A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is desired or required to fulfill this role or to work in this occupation.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OccupationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Occupation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Occupation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A profession, may involve prolonged training and/or a formal qualification.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'educationRequirements' => ['EducationalOccupationalCredential', 'Text'], + 'estimatedSalary' => ['MonetaryAmount', 'Number', 'MonetaryAmountDistribution'], + 'experienceRequirements' => ['OccupationalExperienceRequirements', 'Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'occupationLocation' => ['AdministrativeArea'], + 'occupationalCategory' => ['Text', 'CategoryCode'], + 'potentialAction' => ['Action'], + 'qualifications' => ['EducationalOccupationalCredential', 'Text'], + 'responsibilities' => ['Text'], + 'sameAs' => ['URL'], + 'skills' => ['Text', 'DefinedTerm'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'educationRequirements' => 'Educational background needed for the position or Occupation.', + 'estimatedSalary' => 'An estimated salary for a job posting or occupation, based on a variety of variables including, but not limited to industry, job title, and location. Estimated salaries are often computed by outside organizations rather than the hiring organization, who may not have committed to the estimated value.', + 'experienceRequirements' => 'Description of skills and experience needed for the position or Occupation.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'occupationLocation' => ' The region/country for which this occupational description is appropriate. Note that educational requirements and qualifications can vary between jurisdictions.', + 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'qualifications' => 'Specific qualifications required for this role or Occupation.', + 'responsibilities' => 'Responsibilities associated with this role or Occupation.', + '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.', + 'skills' => 'A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is desired or required to fulfill this role or to work in this occupation.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OccupationalActivity.php b/src/models/jsonld/OccupationalActivity.php index 612a41c9d..483e7b56d 100644 --- a/src/models/jsonld/OccupationalActivity.php +++ b/src/models/jsonld/OccupationalActivity.php @@ -25,126 +25,126 @@ */ class OccupationalActivity extends MetaJsonLd implements OccupationalActivityInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OccupationalActivityTrait; - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OccupationalActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OccupationalActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any physical activity engaged in for job-related purposes. Examples may include waiting tables, maid service, carrying a mailbag, picking fruits or vegetables, construction work, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OccupationalActivityTrait; + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OccupationalActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OccupationalActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any physical activity engaged in for job-related purposes. Examples may include waiting tables, maid service, carrying a mailbag, picking fruits or vegetables, construction work, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OccupationalExperienceRequirements.php b/src/models/jsonld/OccupationalExperienceRequirements.php index 9c58f703e..b1d74cf42 100644 --- a/src/models/jsonld/OccupationalExperienceRequirements.php +++ b/src/models/jsonld/OccupationalExperienceRequirements.php @@ -24,124 +24,124 @@ */ class OccupationalExperienceRequirements extends MetaJsonLd implements OccupationalExperienceRequirementsInterface, IntangibleInterface, ThingInterface { - use OccupationalExperienceRequirementsTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OccupationalExperienceRequirements'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OccupationalExperienceRequirements'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates employment-related experience requirements, e.g. [[monthsOfExperience]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'monthsOfExperience' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'monthsOfExperience' => 'Indicates the minimal number of months of experience required for a position.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OccupationalExperienceRequirementsTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OccupationalExperienceRequirements'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OccupationalExperienceRequirements'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates employment-related experience requirements, e.g. [[monthsOfExperience]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'monthsOfExperience' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'monthsOfExperience' => 'Indicates the minimal number of months of experience required for a position.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OccupationalTherapy.php b/src/models/jsonld/OccupationalTherapy.php index 1c372f210..0b48f5b90 100644 --- a/src/models/jsonld/OccupationalTherapy.php +++ b/src/models/jsonld/OccupationalTherapy.php @@ -25,165 +25,165 @@ */ class OccupationalTherapy extends MetaJsonLd implements OccupationalTherapyInterface, MedicalTherapyInterface, TherapeuticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use OccupationalTherapyTrait; - use MedicalTherapyTrait; - use TherapeuticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OccupationalTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OccupationalTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A treatment of people with physical, emotional, or social problems, using purposeful activity to help them overcome or learn to deal with their problems.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'contraindication' => ['Text', 'MedicalContraindication'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'duplicateTherapy' => ['MedicalTherapy'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'seriousAdverseOutcome' => ['MedicalEntity'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'contraindication' => 'A contraindication for this therapy.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OccupationalTherapyTrait; + use MedicalTherapyTrait; + use TherapeuticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OccupationalTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OccupationalTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A treatment of people with physical, emotional, or social problems, using purposeful activity to help them overcome or learn to deal with their problems.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'contraindication' => ['Text', 'MedicalContraindication'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'duplicateTherapy' => ['MedicalTherapy'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'seriousAdverseOutcome' => ['MedicalEntity'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'contraindication' => 'A contraindication for this therapy.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OceanBodyOfWater.php b/src/models/jsonld/OceanBodyOfWater.php index 4187fcfd7..137fabd78 100644 --- a/src/models/jsonld/OceanBodyOfWater.php +++ b/src/models/jsonld/OceanBodyOfWater.php @@ -23,214 +23,214 @@ */ class OceanBodyOfWater extends MetaJsonLd implements OceanBodyOfWaterInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use OceanBodyOfWaterTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OceanBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OceanBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An ocean (for example, the Pacific).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OceanBodyOfWaterTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OceanBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OceanBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An ocean (for example, the Pacific).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Offer.php b/src/models/jsonld/Offer.php index 887f2aa05..7a558bf28 100644 --- a/src/models/jsonld/Offer.php +++ b/src/models/jsonld/Offer.php @@ -35,224 +35,224 @@ */ class Offer extends MetaJsonLd implements OfferInterface, IntangibleInterface, ThingInterface { - use OfferTrait; - use IntangibleTrait; - use ThingTrait; + use OfferTrait; + use IntangibleTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Offer'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Offer'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Offer'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Offer'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An offer to transfer some rights to an item or to provide a service — for example, an offer to sell tickets to an event, to rent the DVD of a movie, to stream a TV show over the internet, to repair a motorcycle, or to loan a book.\n\nNote: As the [[businessFunction]] property, which identifies the form of offer (e.g. sell, lease, repair, dispose), defaults to http://purl.org/goodrelations/v1#Sell; an Offer without a defined businessFunction value can be assumed to be an offer to sell.\n\nFor [GTIN](http://www.gs1.org/barcodes/technical/idkeys/gtin)-related fields, see [Check Digit calculator](http://www.gs1.org/barcodes/support/check_digit_calculator) and [validation guide](http://www.gs1us.org/resources/standards/gtin-validation-guide) from [GS1](http://www.gs1.org/).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An offer to transfer some rights to an item or to provide a service — for example, an offer to sell tickets to an event, to rent the DVD of a movie, to stream a TV show over the internet, to repair a motorcycle, or to loan a book.\n\nNote: As the [[businessFunction]] property, which identifies the form of offer (e.g. sell, lease, repair, dispose), defaults to http://purl.org/goodrelations/v1#Sell; an Offer without a defined businessFunction value can be assumed to be an offer to sell.\n\nFor [GTIN](http://www.gs1.org/barcodes/technical/idkeys/gtin)-related fields, see [Check Digit calculator](http://www.gs1.org/barcodes/support/check_digit_calculator) and [validation guide](http://www.gs1us.org/resources/standards/gtin-validation-guide) from [GS1](http://www.gs1.org/).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], - 'addOn' => ['Offer'], - 'additionalType' => ['URL'], - 'advanceBookingRequirement' => ['QuantitativeValue'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'asin' => ['Text', 'URL'], - 'availability' => ['ItemAvailability'], - 'availabilityEnds' => ['DateTime', 'Time', 'Date'], - 'availabilityStarts' => ['Date', 'Time', 'DateTime'], - 'availableAtOrFrom' => ['Place'], - 'availableDeliveryMethod' => ['DeliveryMethod'], - 'businessFunction' => ['BusinessFunction'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'checkoutPageURLTemplate' => ['Text'], - 'deliveryLeadTime' => ['QuantitativeValue'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleCustomerType' => ['BusinessEntityType'], - 'eligibleDuration' => ['QuantitativeValue'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includesObject' => ['TypeAndQuantityNode'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'inventoryLevel' => ['QuantitativeValue'], - 'isFamilyFriendly' => ['Boolean'], - 'itemCondition' => ['OfferItemCondition'], - 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'mobileUrl' => ['Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'offeredBy' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'priceValidUntil' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'serialNumber' => ['Text'], - 'shippingDetails' => ['OfferShippingDetails'], - 'sku' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'warranty' => ['WarrantyPromise'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], + 'addOn' => ['Offer'], + 'additionalType' => ['URL'], + 'advanceBookingRequirement' => ['QuantitativeValue'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'asin' => ['Text', 'URL'], + 'availability' => ['ItemAvailability'], + 'availabilityEnds' => ['DateTime', 'Time', 'Date'], + 'availabilityStarts' => ['Date', 'Time', 'DateTime'], + 'availableAtOrFrom' => ['Place'], + 'availableDeliveryMethod' => ['DeliveryMethod'], + 'businessFunction' => ['BusinessFunction'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'checkoutPageURLTemplate' => ['Text'], + 'deliveryLeadTime' => ['QuantitativeValue'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleCustomerType' => ['BusinessEntityType'], + 'eligibleDuration' => ['QuantitativeValue'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includesObject' => ['TypeAndQuantityNode'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'inventoryLevel' => ['QuantitativeValue'], + 'isFamilyFriendly' => ['Boolean'], + 'itemCondition' => ['OfferItemCondition'], + 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'mobileUrl' => ['Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'offeredBy' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'priceValidUntil' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'serialNumber' => ['Text'], + 'shippingDetails' => ['OfferShippingDetails'], + 'sku' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'warranty' => ['WarrantyPromise'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', - 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', - '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.', - 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', - 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', - 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', - 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', - 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', - 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', - 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', - 'description' => 'A description of the item.', - '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.', - 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', - 'eligibleDuration' => 'The duration for which the given offer is valid.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'inventoryLevel' => 'The current approximate inventory level for the item or items.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - '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.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'offeredBy' => 'A pointer to the organization or person making the offer.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - 'priceValidUntil' => 'The date after which the price is no longer available.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', - 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'warranty' => 'The warranty promise(s) included in the offer.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', + 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', + '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.', + 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', + 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', + 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', + 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', + 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', + 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', + 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', + 'description' => 'A description of the item.', + '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.', + 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', + 'eligibleDuration' => 'The duration for which the given offer is valid.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'inventoryLevel' => 'The current approximate inventory level for the item or items.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + '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.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'offeredBy' => 'A pointer to the organization or person making the offer.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + 'priceValidUntil' => 'The date after which the price is no longer available.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', + 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'warranty' => 'The warranty promise(s) included in the offer.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OfferCatalog.php b/src/models/jsonld/OfferCatalog.php index fc7d8c616..1302b4d66 100644 --- a/src/models/jsonld/OfferCatalog.php +++ b/src/models/jsonld/OfferCatalog.php @@ -24,129 +24,129 @@ */ class OfferCatalog extends MetaJsonLd implements OfferCatalogInterface, ItemListInterface, IntangibleInterface, ThingInterface { - use OfferCatalogTrait; - use ItemListTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfferCatalog'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfferCatalog'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemList'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An OfferCatalog is an ItemList that contains related Offers and/or further OfferCatalogs that are offeredBy the same provider.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itemListElement' => ['ListItem', 'Text', 'Thing'], - 'itemListOrder' => ['ItemListOrderType', 'Text'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numberOfItems' => ['Integer'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', - 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', - '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.', - 'name' => 'The name of the item.', - 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfferCatalogTrait; + use ItemListTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfferCatalog'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfferCatalog'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemList'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An OfferCatalog is an ItemList that contains related Offers and/or further OfferCatalogs that are offeredBy the same provider.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itemListElement' => ['ListItem', 'Text', 'Thing'], + 'itemListOrder' => ['ItemListOrderType', 'Text'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numberOfItems' => ['Integer'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itemListElement' => 'For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem. Text values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists. Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a \'position\' property in such cases.', + 'itemListOrder' => 'Type of ordering (e.g. Ascending, Descending, Unordered).', + '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.', + 'name' => 'The name of the item.', + 'numberOfItems' => 'The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfferForLease.php b/src/models/jsonld/OfferForLease.php index 26ffcf117..9e75ddf97 100644 --- a/src/models/jsonld/OfferForLease.php +++ b/src/models/jsonld/OfferForLease.php @@ -27,225 +27,225 @@ */ class OfferForLease extends MetaJsonLd implements OfferForLeaseInterface, OfferInterface, IntangibleInterface, ThingInterface { - use OfferForLeaseTrait; - use OfferTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfferForLease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfferForLease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Offer'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "An [[OfferForLease]] in Schema.org represents an [[Offer]] to lease out something, i.e. an [[Offer]] whose\n [[businessFunction]] is [lease out](http://purl.org/goodrelations/v1#LeaseOut.). See [Good Relations](https://en.wikipedia.org/wiki/GoodRelations) for\n background on the underlying concepts.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], - 'addOn' => ['Offer'], - 'additionalType' => ['URL'], - 'advanceBookingRequirement' => ['QuantitativeValue'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'asin' => ['Text', 'URL'], - 'availability' => ['ItemAvailability'], - 'availabilityEnds' => ['DateTime', 'Time', 'Date'], - 'availabilityStarts' => ['Date', 'Time', 'DateTime'], - 'availableAtOrFrom' => ['Place'], - 'availableDeliveryMethod' => ['DeliveryMethod'], - 'businessFunction' => ['BusinessFunction'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'checkoutPageURLTemplate' => ['Text'], - 'deliveryLeadTime' => ['QuantitativeValue'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleCustomerType' => ['BusinessEntityType'], - 'eligibleDuration' => ['QuantitativeValue'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includesObject' => ['TypeAndQuantityNode'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'inventoryLevel' => ['QuantitativeValue'], - 'isFamilyFriendly' => ['Boolean'], - 'itemCondition' => ['OfferItemCondition'], - 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'mobileUrl' => ['Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'offeredBy' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'priceValidUntil' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'serialNumber' => ['Text'], - 'shippingDetails' => ['OfferShippingDetails'], - 'sku' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'warranty' => ['WarrantyPromise'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', - 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', - '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.', - 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', - 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', - 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', - 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', - 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', - 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', - 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', - 'description' => 'A description of the item.', - '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.', - 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', - 'eligibleDuration' => 'The duration for which the given offer is valid.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'inventoryLevel' => 'The current approximate inventory level for the item or items.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - '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.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'offeredBy' => 'A pointer to the organization or person making the offer.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - 'priceValidUntil' => 'The date after which the price is no longer available.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', - 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'warranty' => 'The warranty promise(s) included in the offer.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfferForLeaseTrait; + use OfferTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfferForLease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfferForLease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Offer'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "An [[OfferForLease]] in Schema.org represents an [[Offer]] to lease out something, i.e. an [[Offer]] whose\n [[businessFunction]] is [lease out](http://purl.org/goodrelations/v1#LeaseOut.). See [Good Relations](https://en.wikipedia.org/wiki/GoodRelations) for\n background on the underlying concepts.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], + 'addOn' => ['Offer'], + 'additionalType' => ['URL'], + 'advanceBookingRequirement' => ['QuantitativeValue'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'asin' => ['Text', 'URL'], + 'availability' => ['ItemAvailability'], + 'availabilityEnds' => ['DateTime', 'Time', 'Date'], + 'availabilityStarts' => ['Date', 'Time', 'DateTime'], + 'availableAtOrFrom' => ['Place'], + 'availableDeliveryMethod' => ['DeliveryMethod'], + 'businessFunction' => ['BusinessFunction'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'checkoutPageURLTemplate' => ['Text'], + 'deliveryLeadTime' => ['QuantitativeValue'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleCustomerType' => ['BusinessEntityType'], + 'eligibleDuration' => ['QuantitativeValue'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includesObject' => ['TypeAndQuantityNode'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'inventoryLevel' => ['QuantitativeValue'], + 'isFamilyFriendly' => ['Boolean'], + 'itemCondition' => ['OfferItemCondition'], + 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'mobileUrl' => ['Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'offeredBy' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'priceValidUntil' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'serialNumber' => ['Text'], + 'shippingDetails' => ['OfferShippingDetails'], + 'sku' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'warranty' => ['WarrantyPromise'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', + 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', + '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.', + 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', + 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', + 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', + 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', + 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', + 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', + 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', + 'description' => 'A description of the item.', + '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.', + 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', + 'eligibleDuration' => 'The duration for which the given offer is valid.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'inventoryLevel' => 'The current approximate inventory level for the item or items.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + '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.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'offeredBy' => 'A pointer to the organization or person making the offer.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + 'priceValidUntil' => 'The date after which the price is no longer available.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', + 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'warranty' => 'The warranty promise(s) included in the offer.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfferForPurchase.php b/src/models/jsonld/OfferForPurchase.php index a55ae1f67..2c555da54 100644 --- a/src/models/jsonld/OfferForPurchase.php +++ b/src/models/jsonld/OfferForPurchase.php @@ -27,225 +27,225 @@ */ class OfferForPurchase extends MetaJsonLd implements OfferForPurchaseInterface, OfferInterface, IntangibleInterface, ThingInterface { - use OfferForPurchaseTrait; - use OfferTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfferForPurchase'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfferForPurchase'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Offer'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "An [[OfferForPurchase]] in Schema.org represents an [[Offer]] to sell something, i.e. an [[Offer]] whose\n [[businessFunction]] is [sell](http://purl.org/goodrelations/v1#Sell.). See [Good Relations](https://en.wikipedia.org/wiki/GoodRelations) for\n background on the underlying concepts.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], - 'addOn' => ['Offer'], - 'additionalType' => ['URL'], - 'advanceBookingRequirement' => ['QuantitativeValue'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'asin' => ['Text', 'URL'], - 'availability' => ['ItemAvailability'], - 'availabilityEnds' => ['DateTime', 'Time', 'Date'], - 'availabilityStarts' => ['Date', 'Time', 'DateTime'], - 'availableAtOrFrom' => ['Place'], - 'availableDeliveryMethod' => ['DeliveryMethod'], - 'businessFunction' => ['BusinessFunction'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'checkoutPageURLTemplate' => ['Text'], - 'deliveryLeadTime' => ['QuantitativeValue'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleCustomerType' => ['BusinessEntityType'], - 'eligibleDuration' => ['QuantitativeValue'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includesObject' => ['TypeAndQuantityNode'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'inventoryLevel' => ['QuantitativeValue'], - 'isFamilyFriendly' => ['Boolean'], - 'itemCondition' => ['OfferItemCondition'], - 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'mobileUrl' => ['Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'offeredBy' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'priceValidUntil' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'serialNumber' => ['Text'], - 'shippingDetails' => ['OfferShippingDetails'], - 'sku' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'warranty' => ['WarrantyPromise'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', - 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', - '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.', - 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', - 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', - 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', - 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', - 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', - 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', - 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', - 'description' => 'A description of the item.', - '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.', - 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', - 'eligibleDuration' => 'The duration for which the given offer is valid.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'inventoryLevel' => 'The current approximate inventory level for the item or items.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - '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.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'offeredBy' => 'A pointer to the organization or person making the offer.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - 'priceValidUntil' => 'The date after which the price is no longer available.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', - 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'warranty' => 'The warranty promise(s) included in the offer.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfferForPurchaseTrait; + use OfferTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfferForPurchase'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfferForPurchase'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Offer'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "An [[OfferForPurchase]] in Schema.org represents an [[Offer]] to sell something, i.e. an [[Offer]] whose\n [[businessFunction]] is [sell](http://purl.org/goodrelations/v1#Sell.). See [Good Relations](https://en.wikipedia.org/wiki/GoodRelations) for\n background on the underlying concepts.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptedPaymentMethod' => ['PaymentMethod', 'LoanOrCredit'], + 'addOn' => ['Offer'], + 'additionalType' => ['URL'], + 'advanceBookingRequirement' => ['QuantitativeValue'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'asin' => ['Text', 'URL'], + 'availability' => ['ItemAvailability'], + 'availabilityEnds' => ['DateTime', 'Time', 'Date'], + 'availabilityStarts' => ['Date', 'Time', 'DateTime'], + 'availableAtOrFrom' => ['Place'], + 'availableDeliveryMethod' => ['DeliveryMethod'], + 'businessFunction' => ['BusinessFunction'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'checkoutPageURLTemplate' => ['Text'], + 'deliveryLeadTime' => ['QuantitativeValue'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleCustomerType' => ['BusinessEntityType'], + 'eligibleDuration' => ['QuantitativeValue'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleRegion' => ['Place', 'Text', 'GeoShape'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includesObject' => ['TypeAndQuantityNode'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'inventoryLevel' => ['QuantitativeValue'], + 'isFamilyFriendly' => ['Boolean'], + 'itemCondition' => ['OfferItemCondition'], + 'itemOffered' => ['Product', 'Service', 'MenuItem', 'CreativeWork', 'Event', 'AggregateOffer', 'Trip'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'mobileUrl' => ['Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'offeredBy' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'priceValidUntil' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'serialNumber' => ['Text'], + 'shippingDetails' => ['OfferShippingDetails'], + 'sku' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'warranty' => ['WarrantyPromise'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptedPaymentMethod' => 'The payment method(s) accepted by seller for this offer.', + 'addOn' => 'An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).', + '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.', + 'advanceBookingRequirement' => 'The amount of time that is required between accepting the offer and the actual usage of the resource or service.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'availability' => 'The availability of this item—for example In stock, Out of stock, Pre-order, etc.', + 'availabilityEnds' => 'The end of the availability of the product or service included in the offer.', + 'availabilityStarts' => 'The beginning of the availability of the product or service included in the offer.', + 'availableAtOrFrom' => 'The place(s) from which the offer can be obtained (e.g. store locations).', + 'availableDeliveryMethod' => 'The delivery method(s) available for this offer.', + 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'checkoutPageURLTemplate' => 'A URL template (RFC 6570) for a checkout page for an offer. This approach allows merchants to specify a URL for online checkout of the offered product, by interpolating parameters such as the logged in user ID, product ID, quantity, discount code etc. Parameter naming and standardization are not specified here.', + 'deliveryLeadTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.', + 'description' => 'A description of the item.', + '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.', + 'eligibleCustomerType' => 'The type(s) of customers for which the given offer is valid.', + 'eligibleDuration' => 'The duration for which the given offer is valid.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid. See also [[ineligibleRegion]]. ', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'inventoryLevel' => 'The current approximate inventory level for the item or items.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + 'itemOffered' => 'An item being offered (or demanded). The transactional nature of the offer or demand is documented using [[businessFunction]], e.g. sell, lease etc. While several common expected types are listed explicitly in this definition, others can be used. Using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + '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.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'offeredBy' => 'A pointer to the organization or person making the offer.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + 'priceValidUntil' => 'The date after which the price is no longer available.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'serialNumber' => 'The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.', + 'shippingDetails' => 'Indicates information about the shipping policies and options associated with an [[Offer]].', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'warranty' => 'The warranty promise(s) included in the offer.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfferItemCondition.php b/src/models/jsonld/OfferItemCondition.php index 5a34ae9da..458b67e2c 100644 --- a/src/models/jsonld/OfferItemCondition.php +++ b/src/models/jsonld/OfferItemCondition.php @@ -23,125 +23,125 @@ */ class OfferItemCondition extends MetaJsonLd implements OfferItemConditionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OfferItemConditionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfferItemCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfferItemCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A list of possible conditions for the item.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfferItemConditionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfferItemCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfferItemCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A list of possible conditions for the item.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfferShippingDetails.php b/src/models/jsonld/OfferShippingDetails.php index 40a437d57..566b0cfba 100644 --- a/src/models/jsonld/OfferShippingDetails.php +++ b/src/models/jsonld/OfferShippingDetails.php @@ -30,147 +30,147 @@ */ class OfferShippingDetails extends MetaJsonLd implements OfferShippingDetailsInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use OfferShippingDetailsTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfferShippingDetails'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfferShippingDetails'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "OfferShippingDetails represents information about shipping destinations.\n\nMultiple of these entities can be used to represent different shipping rates for different destinations:\n\nOne entity for Alaska/Hawaii. A different one for continental US. A different one for all France.\n\nMultiple of these entities can be used to represent different shipping costs and delivery times.\n\nTwo entities that are identical but differ in rate and time:\n\nE.g. Cheaper and slower: \$5 in 5-7 days\nor Fast and expensive: \$15 in 1-2 days."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'deliveryTime' => ['ShippingDeliveryTime'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doesNotShip' => ['Boolean'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'shippingDestination' => ['DefinedRegion'], - 'shippingLabel' => ['Text'], - 'shippingOrigin' => ['DefinedRegion'], - 'shippingRate' => ['MonetaryAmount'], - 'shippingSettingsLink' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'transitTimeLabel' => ['Text'], - 'url' => ['URL'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'deliveryTime' => 'The total delay between the receipt of the order and the goods reaching the final customer.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'doesNotShip' => 'Indicates when shipping to a particular [[shippingDestination]] is not available.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'shippingDestination' => 'indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.', - 'shippingLabel' => 'Label to match an [[OfferShippingDetails]] with a [[ShippingRateSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', - 'shippingOrigin' => 'Indicates the origin of a shipment, i.e. where it should be coming from.', - 'shippingRate' => 'The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the [[MonetaryAmount]]) are most appropriate.', - 'shippingSettingsLink' => 'Link to a page containing [[ShippingRateSettings]] and [[DeliveryTimeSettings]] details.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'transitTimeLabel' => 'Label to match an [[OfferShippingDetails]] with a [[DeliveryTimeSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', - 'url' => 'URL of the item.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfferShippingDetailsTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfferShippingDetails'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfferShippingDetails'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "OfferShippingDetails represents information about shipping destinations.\n\nMultiple of these entities can be used to represent different shipping rates for different destinations:\n\nOne entity for Alaska/Hawaii. A different one for continental US. A different one for all France.\n\nMultiple of these entities can be used to represent different shipping costs and delivery times.\n\nTwo entities that are identical but differ in rate and time:\n\nE.g. Cheaper and slower: \$5 in 5-7 days\nor Fast and expensive: \$15 in 1-2 days."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'deliveryTime' => ['ShippingDeliveryTime'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doesNotShip' => ['Boolean'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'shippingDestination' => ['DefinedRegion'], + 'shippingLabel' => ['Text'], + 'shippingOrigin' => ['DefinedRegion'], + 'shippingRate' => ['MonetaryAmount'], + 'shippingSettingsLink' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'transitTimeLabel' => ['Text'], + 'url' => ['URL'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'deliveryTime' => 'The total delay between the receipt of the order and the goods reaching the final customer.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'doesNotShip' => 'Indicates when shipping to a particular [[shippingDestination]] is not available.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'shippingDestination' => 'indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.', + 'shippingLabel' => 'Label to match an [[OfferShippingDetails]] with a [[ShippingRateSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', + 'shippingOrigin' => 'Indicates the origin of a shipment, i.e. where it should be coming from.', + 'shippingRate' => 'The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the [[MonetaryAmount]]) are most appropriate.', + 'shippingSettingsLink' => 'Link to a page containing [[ShippingRateSettings]] and [[DeliveryTimeSettings]] details.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'transitTimeLabel' => 'Label to match an [[OfferShippingDetails]] with a [[DeliveryTimeSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', + 'url' => 'URL of the item.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfficeEquipmentStore.php b/src/models/jsonld/OfficeEquipmentStore.php index 99d79cf06..045117a36 100644 --- a/src/models/jsonld/OfficeEquipmentStore.php +++ b/src/models/jsonld/OfficeEquipmentStore.php @@ -23,331 +23,331 @@ */ class OfficeEquipmentStore extends MetaJsonLd implements OfficeEquipmentStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use OfficeEquipmentStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use OfficeEquipmentStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfficeEquipmentStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfficeEquipmentStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfficeEquipmentStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfficeEquipmentStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An office equipment store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An office equipment store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OfficialLegalValue.php b/src/models/jsonld/OfficialLegalValue.php index d3d1fee4c..b9b57c809 100644 --- a/src/models/jsonld/OfficialLegalValue.php +++ b/src/models/jsonld/OfficialLegalValue.php @@ -27,126 +27,126 @@ */ class OfficialLegalValue extends MetaJsonLd implements OfficialLegalValueInterface, LegalValueLevelInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OfficialLegalValueTrait; - use LegalValueLevelTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfficialLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfficialLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'All the documents published by an official publisher should have at least the legal value level "OfficialLegalValue". This indicates that the document was published by an organisation with the public task of making it available (e.g. a consolidated version of an EU directive published by the EU Office of Publications).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfficialLegalValueTrait; + use LegalValueLevelTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfficialLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfficialLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'All the documents published by an official publisher should have at least the legal value level "OfficialLegalValue". This indicates that the document was published by an organisation with the public task of making it available (e.g. a consolidated version of an EU directive published by the EU Office of Publications).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfflineEventAttendanceMode.php b/src/models/jsonld/OfflineEventAttendanceMode.php index 5b82be9c2..85d9f56db 100644 --- a/src/models/jsonld/OfflineEventAttendanceMode.php +++ b/src/models/jsonld/OfflineEventAttendanceMode.php @@ -23,126 +23,126 @@ */ class OfflineEventAttendanceMode extends MetaJsonLd implements OfflineEventAttendanceModeInterface, EventAttendanceModeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OfflineEventAttendanceModeTrait; - use EventAttendanceModeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfflineEventAttendanceMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfflineEventAttendanceMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OfflineEventAttendanceMode - an event that is primarily conducted offline. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfflineEventAttendanceModeTrait; + use EventAttendanceModeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfflineEventAttendanceMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfflineEventAttendanceMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OfflineEventAttendanceMode - an event that is primarily conducted offline. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfflinePermanently.php b/src/models/jsonld/OfflinePermanently.php index 26cb73867..e590c5bce 100644 --- a/src/models/jsonld/OfflinePermanently.php +++ b/src/models/jsonld/OfflinePermanently.php @@ -24,127 +24,127 @@ */ class OfflinePermanently extends MetaJsonLd implements OfflinePermanentlyInterface, GameServerStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OfflinePermanentlyTrait; - use GameServerStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfflinePermanently'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfflinePermanently'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Game server status: OfflinePermanently. Server is offline and not available.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfflinePermanentlyTrait; + use GameServerStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfflinePermanently'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfflinePermanently'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Game server status: OfflinePermanently. Server is offline and not available.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OfflineTemporarily.php b/src/models/jsonld/OfflineTemporarily.php index bd0c6c9ff..7b7ebefcd 100644 --- a/src/models/jsonld/OfflineTemporarily.php +++ b/src/models/jsonld/OfflineTemporarily.php @@ -24,127 +24,127 @@ */ class OfflineTemporarily extends MetaJsonLd implements OfflineTemporarilyInterface, GameServerStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OfflineTemporarilyTrait; - use GameServerStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OfflineTemporarily'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OfflineTemporarily'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Game server status: OfflineTemporarily. Server is offline now but it can be online soon.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OfflineTemporarilyTrait; + use GameServerStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OfflineTemporarily'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OfflineTemporarily'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Game server status: OfflineTemporarily. Server is offline now but it can be online soon.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OnDemandEvent.php b/src/models/jsonld/OnDemandEvent.php index 2074e28c0..d4790c9be 100644 --- a/src/models/jsonld/OnDemandEvent.php +++ b/src/models/jsonld/OnDemandEvent.php @@ -24,211 +24,211 @@ */ class OnDemandEvent extends MetaJsonLd implements OnDemandEventInterface, PublicationEventInterface, EventInterface, ThingInterface { - use OnDemandEventTrait; - use PublicationEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OnDemandEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OnDemandEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PublicationEvent'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A publication event, e.g. catch-up TV or radio podcast, during which a program is available on-demand.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'free' => ['Boolean'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'publishedBy' => ['Organization', 'Person'], - 'publishedOn' => ['BroadcastService'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'free' => 'A flag to signal that the item, event, or place is accessible for free.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'publishedBy' => 'An agent associated with the publication event.', - 'publishedOn' => 'A broadcast service associated with the publication event.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OnDemandEventTrait; + use PublicationEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OnDemandEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OnDemandEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PublicationEvent'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A publication event, e.g. catch-up TV or radio podcast, during which a program is available on-demand.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'free' => ['Boolean'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'publishedBy' => ['Organization', 'Person'], + 'publishedOn' => ['BroadcastService'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'free' => 'A flag to signal that the item, event, or place is accessible for free.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'publishedBy' => 'An agent associated with the publication event.', + 'publishedOn' => 'A broadcast service associated with the publication event.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OnSitePickup.php b/src/models/jsonld/OnSitePickup.php index 66d1489ed..333c51af9 100644 --- a/src/models/jsonld/OnSitePickup.php +++ b/src/models/jsonld/OnSitePickup.php @@ -24,126 +24,126 @@ */ class OnSitePickup extends MetaJsonLd implements OnSitePickupInterface, DeliveryMethodInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OnSitePickupTrait; - use DeliveryMethodTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OnSitePickup'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OnSitePickup'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DeliveryMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A DeliveryMethod in which an item is collected on site, e.g. in a store or at a box office.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OnSitePickupTrait; + use DeliveryMethodTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OnSitePickup'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OnSitePickup'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DeliveryMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A DeliveryMethod in which an item is collected on site, e.g. in a store or at a box office.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Oncologic.php b/src/models/jsonld/Oncologic.php index 889605c3a..8eb663c65 100644 --- a/src/models/jsonld/Oncologic.php +++ b/src/models/jsonld/Oncologic.php @@ -25,338 +25,338 @@ */ class Oncologic extends MetaJsonLd implements OncologicInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use OncologicTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use OncologicTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Oncologic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Oncologic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Oncologic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Oncologic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that deals with benign and malignant tumors, including the study of their development, diagnosis, treatment and prevention.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that deals with benign and malignant tumors, including the study of their development, diagnosis, treatment and prevention.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OneTimePayments.php b/src/models/jsonld/OneTimePayments.php index 14228e047..fa04b6804 100644 --- a/src/models/jsonld/OneTimePayments.php +++ b/src/models/jsonld/OneTimePayments.php @@ -23,126 +23,126 @@ */ class OneTimePayments extends MetaJsonLd implements OneTimePaymentsInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OneTimePaymentsTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OneTimePayments'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OneTimePayments'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OneTimePayments: this is a benefit for one-time payments for individuals.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OneTimePaymentsTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OneTimePayments'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OneTimePayments'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OneTimePayments: this is a benefit for one-time payments for individuals.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Online.php b/src/models/jsonld/Online.php index 90f16de3a..299c7a3c5 100644 --- a/src/models/jsonld/Online.php +++ b/src/models/jsonld/Online.php @@ -23,127 +23,127 @@ */ class Online extends MetaJsonLd implements OnlineInterface, GameServerStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OnlineTrait; - use GameServerStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Online'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Online'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Game server status: Online. Server is available.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OnlineTrait; + use GameServerStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Online'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Online'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Game server status: Online. Server is available.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OnlineBusiness.php b/src/models/jsonld/OnlineBusiness.php index 8521f92b5..8d3493606 100644 --- a/src/models/jsonld/OnlineBusiness.php +++ b/src/models/jsonld/OnlineBusiness.php @@ -26,254 +26,254 @@ */ class OnlineBusiness extends MetaJsonLd implements OnlineBusinessInterface, OrganizationInterface, ThingInterface { - use OnlineBusinessTrait; - use OrganizationTrait; - use ThingTrait; + use OnlineBusinessTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OnlineBusiness'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OnlineBusiness'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OnlineBusiness'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OnlineBusiness'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A particular online business, either standalone or the online part of a broader organization. Examples include an eCommerce site, an online travel booking site, an online learning site, an online logistics and shipping provider, an online (virtual) doctor, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A particular online business, either standalone or the online part of a broader organization. Examples include an eCommerce site, an online travel booking site, an online learning site, an online logistics and shipping provider, an online (virtual) doctor, etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OnlineEventAttendanceMode.php b/src/models/jsonld/OnlineEventAttendanceMode.php index e3999c28a..ef866924e 100644 --- a/src/models/jsonld/OnlineEventAttendanceMode.php +++ b/src/models/jsonld/OnlineEventAttendanceMode.php @@ -23,126 +23,126 @@ */ class OnlineEventAttendanceMode extends MetaJsonLd implements OnlineEventAttendanceModeInterface, EventAttendanceModeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OnlineEventAttendanceModeTrait; - use EventAttendanceModeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OnlineEventAttendanceMode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OnlineEventAttendanceMode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EventAttendanceModeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OnlineEventAttendanceMode - an event that is primarily conducted online. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OnlineEventAttendanceModeTrait; + use EventAttendanceModeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OnlineEventAttendanceMode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OnlineEventAttendanceMode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EventAttendanceModeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OnlineEventAttendanceMode - an event that is primarily conducted online. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OnlineFull.php b/src/models/jsonld/OnlineFull.php index 7b323d2f1..30232caaa 100644 --- a/src/models/jsonld/OnlineFull.php +++ b/src/models/jsonld/OnlineFull.php @@ -24,127 +24,127 @@ */ class OnlineFull extends MetaJsonLd implements OnlineFullInterface, GameServerStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OnlineFullTrait; - use GameServerStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OnlineFull'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OnlineFull'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GameServerStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Game server status: OnlineFull. Server is online but unavailable. The maximum number of players has reached.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OnlineFullTrait; + use GameServerStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OnlineFull'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OnlineFull'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GameServerStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Game server status: OnlineFull. Server is online but unavailable. The maximum number of players has reached.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OnlineOnly.php b/src/models/jsonld/OnlineOnly.php index 30fddb842..5dec2021e 100644 --- a/src/models/jsonld/OnlineOnly.php +++ b/src/models/jsonld/OnlineOnly.php @@ -23,126 +23,126 @@ */ class OnlineOnly extends MetaJsonLd implements OnlineOnlyInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OnlineOnlyTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OnlineOnly'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OnlineOnly'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is available only online.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OnlineOnlyTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OnlineOnly'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OnlineOnly'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is available only online.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OnlineStore.php b/src/models/jsonld/OnlineStore.php index 5656f3c47..fc1950274 100644 --- a/src/models/jsonld/OnlineStore.php +++ b/src/models/jsonld/OnlineStore.php @@ -23,255 +23,255 @@ */ class OnlineStore extends MetaJsonLd implements OnlineStoreInterface, OnlineBusinessInterface, OrganizationInterface, ThingInterface { - use OnlineStoreTrait; - use OnlineBusinessTrait; - use OrganizationTrait; - use ThingTrait; + use OnlineStoreTrait; + use OnlineBusinessTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OnlineStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OnlineStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OnlineStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OnlineStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OnlineBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OnlineBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An eCommerce site.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An eCommerce site.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OpenTrial.php b/src/models/jsonld/OpenTrial.php index 9cbfbd524..704713ea7 100644 --- a/src/models/jsonld/OpenTrial.php +++ b/src/models/jsonld/OpenTrial.php @@ -24,127 +24,127 @@ */ class OpenTrial extends MetaJsonLd implements OpenTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OpenTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OpenTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OpenTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trial design in which the researcher knows the full details of the treatment, and so does the patient.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OpenTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OpenTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OpenTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trial design in which the researcher knows the full details of the treatment, and so does the patient.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OpeningHoursSpecification.php b/src/models/jsonld/OpeningHoursSpecification.php index 4c601d482..1c060a4eb 100644 --- a/src/models/jsonld/OpeningHoursSpecification.php +++ b/src/models/jsonld/OpeningHoursSpecification.php @@ -27,133 +27,133 @@ */ class OpeningHoursSpecification extends MetaJsonLd implements OpeningHoursSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use OpeningHoursSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OpeningHoursSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OpeningHoursSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A structured value providing information about the opening hours of a place or a certain service inside a place.\\n\\n\nThe place is __open__ if the [[opens]] property is specified, and __closed__ otherwise.\\n\\nIf the value for the [[closes]] property is less than the value for the [[opens]] property then the hour range is assumed to span over the next day.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'closes' => ['Time'], - 'dayOfWeek' => ['DayOfWeek'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'opens' => ['Time'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'closes' => 'The closing hour of the place or service on the given day(s) of the week.', - 'dayOfWeek' => 'The day of the week for which these opening hours are valid.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'opens' => 'The opening hour of the place or service on the given day(s) of the week.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OpeningHoursSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OpeningHoursSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OpeningHoursSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A structured value providing information about the opening hours of a place or a certain service inside a place.\\n\\n\nThe place is __open__ if the [[opens]] property is specified, and __closed__ otherwise.\\n\\nIf the value for the [[closes]] property is less than the value for the [[opens]] property then the hour range is assumed to span over the next day.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'closes' => ['Time'], + 'dayOfWeek' => ['DayOfWeek'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'opens' => ['Time'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'closes' => 'The closing hour of the place or service on the given day(s) of the week.', + 'dayOfWeek' => 'The day of the week for which these opening hours are valid.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'opens' => 'The opening hour of the place or service on the given day(s) of the week.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OpinionNewsArticle.php b/src/models/jsonld/OpinionNewsArticle.php index 9c2559b49..234afff0e 100644 --- a/src/models/jsonld/OpinionNewsArticle.php +++ b/src/models/jsonld/OpinionNewsArticle.php @@ -27,374 +27,374 @@ */ class OpinionNewsArticle extends MetaJsonLd implements OpinionNewsArticleInterface, NewsArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use OpinionNewsArticleTrait; - use NewsArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use OpinionNewsArticleTrait; + use NewsArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OpinionNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OpinionNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OpinionNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OpinionNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An [[OpinionNewsArticle]] is a [[NewsArticle]] that primarily expresses opinions rather than journalistic reporting of news and events. For example, a [[NewsArticle]] consisting of a column or [[Blog]]/[[BlogPosting]] entry in the Opinions section of a news publication. '; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An [[OpinionNewsArticle]] is a [[NewsArticle]] that primarily expresses opinions rather than journalistic reporting of news and events. For example, a [[NewsArticle]] consisting of a column or [[Blog]]/[[BlogPosting]] entry in the Opinions section of a news publication. '; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateline' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'printColumn' => ['Text'], - 'printEdition' => ['Text'], - 'printPage' => ['Text'], - 'printSection' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateline' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'printColumn' => ['Text'], + 'printEdition' => ['Text'], + 'printPage' => ['Text'], + 'printSection' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', - 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', - 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', - 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', + 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', + 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', + 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Optician.php b/src/models/jsonld/Optician.php index 24991da4b..1f1053493 100644 --- a/src/models/jsonld/Optician.php +++ b/src/models/jsonld/Optician.php @@ -24,331 +24,331 @@ */ class Optician extends MetaJsonLd implements OpticianInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use OpticianTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use OpticianTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Optician'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Optician'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Optician'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Optician'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A store that sells reading glasses and similar devices for improving vision.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A store that sells reading glasses and similar devices for improving vision.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Optometric.php b/src/models/jsonld/Optometric.php index 2688de1ee..5edbbc32b 100644 --- a/src/models/jsonld/Optometric.php +++ b/src/models/jsonld/Optometric.php @@ -24,338 +24,338 @@ */ class Optometric extends MetaJsonLd implements OptometricInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use OptometricTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use OptometricTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Optometric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Optometric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Optometric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Optometric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The science or practice of testing visual acuity and prescribing corrective lenses.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The science or practice of testing visual acuity and prescribing corrective lenses.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Order.php b/src/models/jsonld/Order.php index 53ecb40b0..b22fdcafc 100644 --- a/src/models/jsonld/Order.php +++ b/src/models/jsonld/Order.php @@ -25,166 +25,166 @@ */ class Order extends MetaJsonLd implements OrderInterface, IntangibleInterface, ThingInterface { - use OrderTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Order'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Order'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An order is a confirmation of a transaction (a receipt), which can contain multiple line items, each represented by an Offer that has been accepted by the customer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptedOffer' => ['Offer'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'billingAddress' => ['PostalAddress'], - 'broker' => ['Person', 'Organization'], - 'confirmationNumber' => ['Text'], - 'customer' => ['Organization', 'Person'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discount' => ['Number', 'Text'], - 'discountCode' => ['Text'], - 'discountCurrency' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isGift' => ['Boolean'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'merchant' => ['Organization', 'Person'], - 'name' => ['Text'], - 'orderDate' => ['DateTime', 'Date'], - 'orderDelivery' => ['ParcelDelivery'], - 'orderNumber' => ['Text'], - 'orderStatus' => ['OrderStatus'], - 'orderedItem' => ['Product', 'Service', 'OrderItem'], - 'partOfInvoice' => ['Invoice'], - 'paymentDue' => ['DateTime'], - 'paymentDueDate' => ['Date', 'DateTime'], - 'paymentMethod' => ['PaymentMethod'], - 'paymentMethodId' => ['Text'], - 'paymentUrl' => ['URL'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'seller' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptedOffer' => 'The offer(s) -- e.g., product, quantity and price combinations -- included in the order.', - '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.', - 'alternateName' => 'An alias for the item.', - 'billingAddress' => 'The billing address for the order.', - '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.', - 'confirmationNumber' => 'A number that confirms the given order or payment has been received.', - 'customer' => 'Party placing the order or paying the invoice.', - 'description' => 'A description of the item.', - '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.', - 'discount' => 'Any discount applied (to an Order).', - 'discountCode' => 'Code used to redeem a discount.', - 'discountCurrency' => 'The currency of the discount. 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".', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isGift' => 'Indicates whether the offer was accepted as a gift for someone other than the buyer.', - '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.', - 'merchant' => '\'merchant\' is an out-dated term for \'seller\'.', - 'name' => 'The name of the item.', - 'orderDate' => 'Date order was placed.', - 'orderDelivery' => 'The delivery of the parcel related to this order or order item.', - 'orderNumber' => 'The identifier of the transaction.', - 'orderStatus' => 'The current status of the order.', - 'orderedItem' => 'The item ordered.', - 'partOfInvoice' => 'The order is being paid as part of the referenced Invoice.', - 'paymentDue' => 'The date that payment is due.', - 'paymentDueDate' => 'The date that payment is due.', - 'paymentMethod' => 'The name of the credit card or other method of payment for the order.', - 'paymentMethodId' => 'An identifier for the method of payment used (e.g. the last 4 digits of the credit card).', - 'paymentUrl' => 'The URL for sending a payment.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Order'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Order'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An order is a confirmation of a transaction (a receipt), which can contain multiple line items, each represented by an Offer that has been accepted by the customer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptedOffer' => ['Offer'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'billingAddress' => ['PostalAddress'], + 'broker' => ['Person', 'Organization'], + 'confirmationNumber' => ['Text'], + 'customer' => ['Organization', 'Person'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discount' => ['Number', 'Text'], + 'discountCode' => ['Text'], + 'discountCurrency' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isGift' => ['Boolean'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'merchant' => ['Organization', 'Person'], + 'name' => ['Text'], + 'orderDate' => ['DateTime', 'Date'], + 'orderDelivery' => ['ParcelDelivery'], + 'orderNumber' => ['Text'], + 'orderStatus' => ['OrderStatus'], + 'orderedItem' => ['Product', 'Service', 'OrderItem'], + 'partOfInvoice' => ['Invoice'], + 'paymentDue' => ['DateTime'], + 'paymentDueDate' => ['Date', 'DateTime'], + 'paymentMethod' => ['PaymentMethod'], + 'paymentMethodId' => ['Text'], + 'paymentUrl' => ['URL'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'seller' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptedOffer' => 'The offer(s) -- e.g., product, quantity and price combinations -- included in the order.', + '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.', + 'alternateName' => 'An alias for the item.', + 'billingAddress' => 'The billing address for the order.', + '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.', + 'confirmationNumber' => 'A number that confirms the given order or payment has been received.', + 'customer' => 'Party placing the order or paying the invoice.', + 'description' => 'A description of the item.', + '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.', + 'discount' => 'Any discount applied (to an Order).', + 'discountCode' => 'Code used to redeem a discount.', + 'discountCurrency' => 'The currency of the discount. 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".', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isGift' => 'Indicates whether the offer was accepted as a gift for someone other than the buyer.', + '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.', + 'merchant' => '\'merchant\' is an out-dated term for \'seller\'.', + 'name' => 'The name of the item.', + 'orderDate' => 'Date order was placed.', + 'orderDelivery' => 'The delivery of the parcel related to this order or order item.', + 'orderNumber' => 'The identifier of the transaction.', + 'orderStatus' => 'The current status of the order.', + 'orderedItem' => 'The item ordered.', + 'partOfInvoice' => 'The order is being paid as part of the referenced Invoice.', + 'paymentDue' => 'The date that payment is due.', + 'paymentDueDate' => 'The date that payment is due.', + 'paymentMethod' => 'The name of the credit card or other method of payment for the order.', + 'paymentMethodId' => 'An identifier for the method of payment used (e.g. the last 4 digits of the credit card).', + 'paymentUrl' => 'The URL for sending a payment.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'seller' => 'An entity which offers (sells / leases / lends / loans) the services / goods. A seller may also be a provider.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderAction.php b/src/models/jsonld/OrderAction.php index 6a17a2ecb..d79d4804a 100644 --- a/src/models/jsonld/OrderAction.php +++ b/src/models/jsonld/OrderAction.php @@ -23,155 +23,155 @@ */ class OrderAction extends MetaJsonLd implements OrderActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use OrderActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent orders an object/product/service to be delivered/sent.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'deliveryMethod' => ['DeliveryMethod'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent orders an object/product/service to be delivered/sent.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'deliveryMethod' => ['DeliveryMethod'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderCancelled.php b/src/models/jsonld/OrderCancelled.php index fccc43a4f..43dd1d045 100644 --- a/src/models/jsonld/OrderCancelled.php +++ b/src/models/jsonld/OrderCancelled.php @@ -23,127 +23,127 @@ */ class OrderCancelled extends MetaJsonLd implements OrderCancelledInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderCancelledTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderCancelled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderCancelled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing cancellation of an order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderCancelledTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderCancelled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderCancelled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing cancellation of an order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderDelivered.php b/src/models/jsonld/OrderDelivered.php index a5c2a52d9..832e373d9 100644 --- a/src/models/jsonld/OrderDelivered.php +++ b/src/models/jsonld/OrderDelivered.php @@ -23,127 +23,127 @@ */ class OrderDelivered extends MetaJsonLd implements OrderDeliveredInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderDeliveredTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderDelivered'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderDelivered'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing successful delivery of an order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderDeliveredTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderDelivered'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderDelivered'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing successful delivery of an order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderInTransit.php b/src/models/jsonld/OrderInTransit.php index bc3003237..5c6551311 100644 --- a/src/models/jsonld/OrderInTransit.php +++ b/src/models/jsonld/OrderInTransit.php @@ -23,127 +23,127 @@ */ class OrderInTransit extends MetaJsonLd implements OrderInTransitInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderInTransitTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderInTransit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderInTransit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing that an order is in transit.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderInTransitTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderInTransit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderInTransit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing that an order is in transit.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderItem.php b/src/models/jsonld/OrderItem.php index f7dab94a5..7d9c13494 100644 --- a/src/models/jsonld/OrderItem.php +++ b/src/models/jsonld/OrderItem.php @@ -24,132 +24,132 @@ */ class OrderItem extends MetaJsonLd implements OrderItemInterface, IntangibleInterface, ThingInterface { - use OrderItemTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderItem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderItem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An order item is a line of an order. It includes the quantity and shipping details of a bought offer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'orderDelivery' => ['ParcelDelivery'], - 'orderItemNumber' => ['Text'], - 'orderItemStatus' => ['OrderStatus'], - 'orderQuantity' => ['Number'], - 'orderedItem' => ['Product', 'Service', 'OrderItem'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'orderDelivery' => 'The delivery of the parcel related to this order or order item.', - 'orderItemNumber' => 'The identifier of the order item.', - 'orderItemStatus' => 'The current status of the order item.', - 'orderQuantity' => 'The number of the item ordered. If the property is not set, assume the quantity is one.', - 'orderedItem' => 'The item ordered.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderItemTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderItem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderItem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An order item is a line of an order. It includes the quantity and shipping details of a bought offer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'orderDelivery' => ['ParcelDelivery'], + 'orderItemNumber' => ['Text'], + 'orderItemStatus' => ['OrderStatus'], + 'orderQuantity' => ['Number'], + 'orderedItem' => ['Product', 'Service', 'OrderItem'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'orderDelivery' => 'The delivery of the parcel related to this order or order item.', + 'orderItemNumber' => 'The identifier of the order item.', + 'orderItemStatus' => 'The current status of the order item.', + 'orderQuantity' => 'The number of the item ordered. If the property is not set, assume the quantity is one.', + 'orderedItem' => 'The item ordered.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderPaymentDue.php b/src/models/jsonld/OrderPaymentDue.php index 817962eeb..374ffcd3e 100644 --- a/src/models/jsonld/OrderPaymentDue.php +++ b/src/models/jsonld/OrderPaymentDue.php @@ -23,127 +23,127 @@ */ class OrderPaymentDue extends MetaJsonLd implements OrderPaymentDueInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderPaymentDueTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderPaymentDue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderPaymentDue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing that payment is due on an order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderPaymentDueTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderPaymentDue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderPaymentDue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing that payment is due on an order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderPickupAvailable.php b/src/models/jsonld/OrderPickupAvailable.php index bad2e4ffe..ffdb57081 100644 --- a/src/models/jsonld/OrderPickupAvailable.php +++ b/src/models/jsonld/OrderPickupAvailable.php @@ -23,127 +23,127 @@ */ class OrderPickupAvailable extends MetaJsonLd implements OrderPickupAvailableInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderPickupAvailableTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderPickupAvailable'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderPickupAvailable'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing availability of an order for pickup.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderPickupAvailableTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderPickupAvailable'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderPickupAvailable'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing availability of an order for pickup.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderProblem.php b/src/models/jsonld/OrderProblem.php index d3056a23f..f0fca7d48 100644 --- a/src/models/jsonld/OrderProblem.php +++ b/src/models/jsonld/OrderProblem.php @@ -23,127 +23,127 @@ */ class OrderProblem extends MetaJsonLd implements OrderProblemInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderProblemTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderProblem'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderProblem'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing that there is a problem with the order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderProblemTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderProblem'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderProblem'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing that there is a problem with the order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderProcessing.php b/src/models/jsonld/OrderProcessing.php index cb1e5cc48..2ff8b408a 100644 --- a/src/models/jsonld/OrderProcessing.php +++ b/src/models/jsonld/OrderProcessing.php @@ -23,127 +23,127 @@ */ class OrderProcessing extends MetaJsonLd implements OrderProcessingInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderProcessingTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderProcessing'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderProcessing'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing that an order is being processed.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderProcessingTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderProcessing'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderProcessing'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing that an order is being processed.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderReturned.php b/src/models/jsonld/OrderReturned.php index 3802bf11d..f3199598d 100644 --- a/src/models/jsonld/OrderReturned.php +++ b/src/models/jsonld/OrderReturned.php @@ -23,127 +23,127 @@ */ class OrderReturned extends MetaJsonLd implements OrderReturnedInterface, OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderReturnedTrait; - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderReturned'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderReturned'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrderStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'OrderStatus representing that an order has been returned.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderReturnedTrait; + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderReturned'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderReturned'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrderStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'OrderStatus representing that an order has been returned.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrderStatus.php b/src/models/jsonld/OrderStatus.php index d09a6d030..ecb434b68 100644 --- a/src/models/jsonld/OrderStatus.php +++ b/src/models/jsonld/OrderStatus.php @@ -23,126 +23,126 @@ */ class OrderStatus extends MetaJsonLd implements OrderStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OrderStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrderStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrderStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerated status values for Order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrderStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrderStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrderStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerated status values for Order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Organization.php b/src/models/jsonld/Organization.php index 3892f3592..5efab1362 100644 --- a/src/models/jsonld/Organization.php +++ b/src/models/jsonld/Organization.php @@ -23,253 +23,253 @@ */ class Organization extends MetaJsonLd implements OrganizationInterface, ThingInterface { - use OrganizationTrait; - use ThingTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Organization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Organization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Organization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Organization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An organization such as a school, NGO, corporation, club, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An organization such as a school, NGO, corporation, club, etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OrganizationRole.php b/src/models/jsonld/OrganizationRole.php index daea7f309..8884b316a 100644 --- a/src/models/jsonld/OrganizationRole.php +++ b/src/models/jsonld/OrganizationRole.php @@ -23,133 +23,133 @@ */ class OrganizationRole extends MetaJsonLd implements OrganizationRoleInterface, RoleInterface, IntangibleInterface, ThingInterface { - use OrganizationRoleTrait; - use RoleTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrganizationRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrganizationRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Role'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A subclass of Role used to describe roles within organizations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'namedPosition' => ['Text', 'URL'], - 'numberedPosition' => ['Number'], - 'potentialAction' => ['Action'], - 'roleName' => ['Text', 'URL'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - 'numberedPosition' => 'A number associated with a role in an organization, for example, the number on an athlete\'s jersey.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrganizationRoleTrait; + use RoleTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrganizationRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrganizationRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Role'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A subclass of Role used to describe roles within organizations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'namedPosition' => ['Text', 'URL'], + 'numberedPosition' => ['Number'], + 'potentialAction' => ['Action'], + 'roleName' => ['Text', 'URL'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + 'numberedPosition' => 'A number associated with a role in an organization, for example, the number on an athlete\'s jersey.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OrganizeAction.php b/src/models/jsonld/OrganizeAction.php index bea10b16c..b38b6c6c1 100644 --- a/src/models/jsonld/OrganizeAction.php +++ b/src/models/jsonld/OrganizeAction.php @@ -24,146 +24,146 @@ */ class OrganizeAction extends MetaJsonLd implements OrganizeActionInterface, ActionInterface, ThingInterface { - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OrganizeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OrganizeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of manipulating/administering/supervising/controlling one or more objects.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OrganizeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OrganizeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of manipulating/administering/supervising/controlling one or more objects.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OriginalMediaContent.php b/src/models/jsonld/OriginalMediaContent.php index ed21fb24d..56720833e 100644 --- a/src/models/jsonld/OriginalMediaContent.php +++ b/src/models/jsonld/OriginalMediaContent.php @@ -34,126 +34,126 @@ */ class OriginalMediaContent extends MetaJsonLd implements OriginalMediaContentInterface, MediaManipulationRatingEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OriginalMediaContentTrait; - use MediaManipulationRatingEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OriginalMediaContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OriginalMediaContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Content coded 'as original media content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'original': No evidence the footage has been misleadingly altered or manipulated, though it may contain false or misleading claims.\n\nFor an [[ImageObject]] to be 'original': No evidence the image has been misleadingly altered or manipulated, though it may still contain false or misleading claims.\n\nFor an [[ImageObject]] with embedded text to be 'original': No evidence the image has been misleadingly altered or manipulated, though it may still contain false or misleading claims.\n\nFor an [[AudioObject]] to be 'original': No evidence the audio has been misleadingly altered or manipulated, though it may contain false or misleading claims."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OriginalMediaContentTrait; + use MediaManipulationRatingEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OriginalMediaContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OriginalMediaContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Content coded 'as original media content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'original': No evidence the footage has been misleadingly altered or manipulated, though it may contain false or misleading claims.\n\nFor an [[ImageObject]] to be 'original': No evidence the image has been misleadingly altered or manipulated, though it may still contain false or misleading claims.\n\nFor an [[ImageObject]] with embedded text to be 'original': No evidence the image has been misleadingly altered or manipulated, though it may still contain false or misleading claims.\n\nFor an [[AudioObject]] to be 'original': No evidence the audio has been misleadingly altered or manipulated, though it may contain false or misleading claims."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OriginalShippingFees.php b/src/models/jsonld/OriginalShippingFees.php index 755a1a38c..2cfc128be 100644 --- a/src/models/jsonld/OriginalShippingFees.php +++ b/src/models/jsonld/OriginalShippingFees.php @@ -24,126 +24,126 @@ */ class OriginalShippingFees extends MetaJsonLd implements OriginalShippingFeesInterface, ReturnFeesEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OriginalShippingFeesTrait; - use ReturnFeesEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OriginalShippingFees'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OriginalShippingFees'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that the customer must pay the original shipping costs when returning a product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OriginalShippingFeesTrait; + use ReturnFeesEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OriginalShippingFees'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OriginalShippingFees'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that the customer must pay the original shipping costs when returning a product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Osteopathic.php b/src/models/jsonld/Osteopathic.php index 73e840127..7882c52de 100644 --- a/src/models/jsonld/Osteopathic.php +++ b/src/models/jsonld/Osteopathic.php @@ -24,127 +24,127 @@ */ class Osteopathic extends MetaJsonLd implements OsteopathicInterface, MedicineSystemInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OsteopathicTrait; - use MedicineSystemTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Osteopathic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Osteopathic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A system of medicine focused on promoting the body\'s innate ability to heal itself.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OsteopathicTrait; + use MedicineSystemTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Osteopathic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Osteopathic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A system of medicine focused on promoting the body\'s innate ability to heal itself.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Otolaryngologic.php b/src/models/jsonld/Otolaryngologic.php index c80239554..b4c6ef6c5 100644 --- a/src/models/jsonld/Otolaryngologic.php +++ b/src/models/jsonld/Otolaryngologic.php @@ -24,338 +24,338 @@ */ class Otolaryngologic extends MetaJsonLd implements OtolaryngologicInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use OtolaryngologicTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use OtolaryngologicTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Otolaryngologic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Otolaryngologic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Otolaryngologic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Otolaryngologic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the ear, nose and throat and their respective disease states.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the ear, nose and throat and their respective disease states.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OutOfStock.php b/src/models/jsonld/OutOfStock.php index 245b021c4..5ed398d52 100644 --- a/src/models/jsonld/OutOfStock.php +++ b/src/models/jsonld/OutOfStock.php @@ -23,126 +23,126 @@ */ class OutOfStock extends MetaJsonLd implements OutOfStockInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OutOfStockTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OutOfStock'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OutOfStock'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is out of stock.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OutOfStockTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OutOfStock'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OutOfStock'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is out of stock.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OutletStore.php b/src/models/jsonld/OutletStore.php index 2fdb5ae6b..6ce292b75 100644 --- a/src/models/jsonld/OutletStore.php +++ b/src/models/jsonld/OutletStore.php @@ -23,331 +23,331 @@ */ class OutletStore extends MetaJsonLd implements OutletStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use OutletStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use OutletStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OutletStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OutletStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OutletStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OutletStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An outlet store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An outlet store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/OverviewHealthAspect.php b/src/models/jsonld/OverviewHealthAspect.php index af9bd8fcb..483b24546 100644 --- a/src/models/jsonld/OverviewHealthAspect.php +++ b/src/models/jsonld/OverviewHealthAspect.php @@ -24,126 +24,126 @@ */ class OverviewHealthAspect extends MetaJsonLd implements OverviewHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use OverviewHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OverviewHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OverviewHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Overview of the content. Contains a summarized view of the topic with the most relevant information for an introduction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OverviewHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OverviewHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OverviewHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Overview of the content. Contains a summarized view of the topic with the most relevant information for an introduction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/OwnershipInfo.php b/src/models/jsonld/OwnershipInfo.php index 52f9b2cc9..9a1ca010d 100644 --- a/src/models/jsonld/OwnershipInfo.php +++ b/src/models/jsonld/OwnershipInfo.php @@ -24,131 +24,131 @@ */ class OwnershipInfo extends MetaJsonLd implements OwnershipInfoInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use OwnershipInfoTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'OwnershipInfo'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/OwnershipInfo'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A structured value providing information about when a certain organization or person owned a certain product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acquiredFrom' => ['Person', 'Organization'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'ownedFrom' => ['DateTime'], - 'ownedThrough' => ['DateTime'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typeOfGood' => ['Product', 'Service'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acquiredFrom' => 'The organization or person from which the product was acquired.', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'ownedFrom' => 'The date and time of obtaining the product.', - 'ownedThrough' => 'The date and time of giving up ownership on the product.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typeOfGood' => 'The product that this structured value is referring to.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use OwnershipInfoTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'OwnershipInfo'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/OwnershipInfo'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A structured value providing information about when a certain organization or person owned a certain product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acquiredFrom' => ['Person', 'Organization'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'ownedFrom' => ['DateTime'], + 'ownedThrough' => ['DateTime'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typeOfGood' => ['Product', 'Service'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acquiredFrom' => 'The organization or person from which the product was acquired.', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'ownedFrom' => 'The date and time of obtaining the product.', + 'ownedThrough' => 'The date and time of giving up ownership on the product.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typeOfGood' => 'The product that this structured value is referring to.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PET.php b/src/models/jsonld/PET.php index 015ebbd3c..aa563e771 100644 --- a/src/models/jsonld/PET.php +++ b/src/models/jsonld/PET.php @@ -23,127 +23,127 @@ */ class PET extends MetaJsonLd implements PETInterface, MedicalImagingTechniqueInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PETTrait; - use MedicalImagingTechniqueTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PET'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PET'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Positron emission tomography imaging.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PETTrait; + use MedicalImagingTechniqueTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PET'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PET'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Positron emission tomography imaging.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaidLeave.php b/src/models/jsonld/PaidLeave.php index d19a81336..a1df669f3 100644 --- a/src/models/jsonld/PaidLeave.php +++ b/src/models/jsonld/PaidLeave.php @@ -23,126 +23,126 @@ */ class PaidLeave extends MetaJsonLd implements PaidLeaveInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaidLeaveTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaidLeave'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaidLeave'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'PaidLeave: this is a benefit for paid leave.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaidLeaveTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaidLeave'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaidLeave'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'PaidLeave: this is a benefit for paid leave.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaintAction.php b/src/models/jsonld/PaintAction.php index a78c0c538..cefab9670 100644 --- a/src/models/jsonld/PaintAction.php +++ b/src/models/jsonld/PaintAction.php @@ -24,147 +24,147 @@ */ class PaintAction extends MetaJsonLd implements PaintActionInterface, CreateActionInterface, ActionInterface, ThingInterface { - use PaintActionTrait; - use CreateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaintAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaintAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of producing a painting, typically with paint and canvas as instruments.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaintActionTrait; + use CreateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaintAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaintAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of producing a painting, typically with paint and canvas as instruments.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Painting.php b/src/models/jsonld/Painting.php index b396d9fa7..a15b3e4ab 100644 --- a/src/models/jsonld/Painting.php +++ b/src/models/jsonld/Painting.php @@ -23,346 +23,346 @@ */ class Painting extends MetaJsonLd implements PaintingInterface, CreativeWorkInterface, ThingInterface { - use PaintingTrait; - use CreativeWorkTrait; - use ThingTrait; + use PaintingTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Painting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Painting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Painting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Painting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A painting.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A painting.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PalliativeProcedure.php b/src/models/jsonld/PalliativeProcedure.php index 797d98545..ebd8acaa6 100644 --- a/src/models/jsonld/PalliativeProcedure.php +++ b/src/models/jsonld/PalliativeProcedure.php @@ -24,165 +24,165 @@ */ class PalliativeProcedure extends MetaJsonLd implements PalliativeProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalTherapyInterface, TherapeuticProcedureInterface { - use PalliativeProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalTherapyTrait; - use TherapeuticProcedureTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PalliativeProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PalliativeProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical procedure intended primarily for palliative purposes, aimed at relieving the symptoms of an underlying health condition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'contraindication' => ['Text', 'MedicalContraindication'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'duplicateTherapy' => ['MedicalTherapy'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'seriousAdverseOutcome' => ['MedicalEntity'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'contraindication' => 'A contraindication for this therapy.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PalliativeProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalTherapyTrait; + use TherapeuticProcedureTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PalliativeProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PalliativeProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical procedure intended primarily for palliative purposes, aimed at relieving the symptoms of an underlying health condition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'contraindication' => ['Text', 'MedicalContraindication'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'duplicateTherapy' => ['MedicalTherapy'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'seriousAdverseOutcome' => ['MedicalEntity'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'contraindication' => 'A contraindication for this therapy.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Paperback.php b/src/models/jsonld/Paperback.php index a04d49378..1b89838b6 100644 --- a/src/models/jsonld/Paperback.php +++ b/src/models/jsonld/Paperback.php @@ -23,126 +23,126 @@ */ class Paperback extends MetaJsonLd implements PaperbackInterface, BookFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaperbackTrait; - use BookFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Paperback'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Paperback'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BookFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Book format: Paperback.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaperbackTrait; + use BookFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Paperback'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Paperback'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BookFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Book format: Paperback.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ParcelDelivery.php b/src/models/jsonld/ParcelDelivery.php index 5137eaef4..7d549011f 100644 --- a/src/models/jsonld/ParcelDelivery.php +++ b/src/models/jsonld/ParcelDelivery.php @@ -24,146 +24,146 @@ */ class ParcelDelivery extends MetaJsonLd implements ParcelDeliveryInterface, IntangibleInterface, ThingInterface { - use ParcelDeliveryTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ParcelDelivery'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ParcelDelivery'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The delivery of a parcel either via the postal service or a commercial service.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'carrier' => ['Organization'], - 'deliveryAddress' => ['PostalAddress'], - 'deliveryStatus' => ['DeliveryEvent'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'expectedArrivalFrom' => ['Date', 'DateTime'], - 'expectedArrivalUntil' => ['DateTime', 'Date'], - 'hasDeliveryMethod' => ['DeliveryMethod'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itemShipped' => ['Product'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'originAddress' => ['PostalAddress'], - 'partOfOrder' => ['Order'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'trackingNumber' => ['Text'], - 'trackingUrl' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'carrier' => '\'carrier\' is an out-dated term indicating the \'provider\' for parcel delivery and flights.', - 'deliveryAddress' => 'Destination address.', - 'deliveryStatus' => 'New entry added as the package passes through each leg of its journey (from shipment to final delivery).', - 'description' => 'A description of the item.', - '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.', - 'expectedArrivalFrom' => 'The earliest date the package may arrive.', - 'expectedArrivalUntil' => 'The latest date the package may arrive.', - 'hasDeliveryMethod' => 'Method used for delivery or shipping.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itemShipped' => 'Item(s) being shipped.', - '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.', - 'name' => 'The name of the item.', - 'originAddress' => 'Shipper\'s address.', - 'partOfOrder' => 'The overall order the items in this delivery were included in.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'trackingNumber' => 'Shipper tracking number.', - 'trackingUrl' => 'Tracking url for the parcel delivery.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ParcelDeliveryTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ParcelDelivery'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ParcelDelivery'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The delivery of a parcel either via the postal service or a commercial service.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'carrier' => ['Organization'], + 'deliveryAddress' => ['PostalAddress'], + 'deliveryStatus' => ['DeliveryEvent'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'expectedArrivalFrom' => ['Date', 'DateTime'], + 'expectedArrivalUntil' => ['DateTime', 'Date'], + 'hasDeliveryMethod' => ['DeliveryMethod'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itemShipped' => ['Product'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'originAddress' => ['PostalAddress'], + 'partOfOrder' => ['Order'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'trackingNumber' => ['Text'], + 'trackingUrl' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'carrier' => '\'carrier\' is an out-dated term indicating the \'provider\' for parcel delivery and flights.', + 'deliveryAddress' => 'Destination address.', + 'deliveryStatus' => 'New entry added as the package passes through each leg of its journey (from shipment to final delivery).', + 'description' => 'A description of the item.', + '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.', + 'expectedArrivalFrom' => 'The earliest date the package may arrive.', + 'expectedArrivalUntil' => 'The latest date the package may arrive.', + 'hasDeliveryMethod' => 'Method used for delivery or shipping.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itemShipped' => 'Item(s) being shipped.', + '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.', + 'name' => 'The name of the item.', + 'originAddress' => 'Shipper\'s address.', + 'partOfOrder' => 'The overall order the items in this delivery were included in.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'trackingNumber' => 'Shipper tracking number.', + 'trackingUrl' => 'Tracking url for the parcel delivery.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ParcelService.php b/src/models/jsonld/ParcelService.php index 6621cad54..87f9d95a8 100644 --- a/src/models/jsonld/ParcelService.php +++ b/src/models/jsonld/ParcelService.php @@ -26,126 +26,126 @@ */ class ParcelService extends MetaJsonLd implements ParcelServiceInterface, DeliveryMethodInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ParcelServiceTrait; - use DeliveryMethodTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ParcelService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ParcelService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DeliveryMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A private parcel service as the delivery mode available for a certain offer.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#DHL\\n* http://purl.org/goodrelations/v1#FederalExpress\\n* http://purl.org/goodrelations/v1#UPS\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ParcelServiceTrait; + use DeliveryMethodTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ParcelService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ParcelService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DeliveryMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A private parcel service as the delivery mode available for a certain offer.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#DHL\\n* http://purl.org/goodrelations/v1#FederalExpress\\n* http://purl.org/goodrelations/v1#UPS\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ParentAudience.php b/src/models/jsonld/ParentAudience.php index b23b65d24..ea1ebd13d 100644 --- a/src/models/jsonld/ParentAudience.php +++ b/src/models/jsonld/ParentAudience.php @@ -24,150 +24,150 @@ */ class ParentAudience extends MetaJsonLd implements ParentAudienceInterface, PeopleAudienceInterface, AudienceInterface, IntangibleInterface, ThingInterface { - use ParentAudienceTrait; - use PeopleAudienceTrait; - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ParentAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ParentAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PeopleAudience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of characteristics describing parents, who can be interested in viewing some content.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'audienceType' => ['Text'], - 'childMaxAge' => ['Number'], - 'childMinAge' => ['Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'geographicArea' => ['AdministrativeArea'], - 'healthCondition' => ['MedicalCondition'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'requiredGender' => ['Text'], - 'requiredMaxAge' => ['Integer'], - 'requiredMinAge' => ['Integer'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suggestedAge' => ['QuantitativeValue'], - 'suggestedGender' => ['GenderType', 'Text'], - 'suggestedMaxAge' => ['Number'], - 'suggestedMeasurement' => ['QuantitativeValue'], - 'suggestedMinAge' => ['Number'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'childMaxAge' => 'Maximal age of the child.', - 'childMinAge' => 'Minimal age of the child.', - 'description' => 'A description of the item.', - '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.', - 'geographicArea' => 'The geographic area associated with the audience.', - 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'requiredGender' => 'Audiences defined by a person\'s gender.', - 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', - 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', - 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', - 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', - 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', - 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ParentAudienceTrait; + use PeopleAudienceTrait; + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ParentAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ParentAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PeopleAudience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of characteristics describing parents, who can be interested in viewing some content.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'audienceType' => ['Text'], + 'childMaxAge' => ['Number'], + 'childMinAge' => ['Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'geographicArea' => ['AdministrativeArea'], + 'healthCondition' => ['MedicalCondition'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'requiredGender' => ['Text'], + 'requiredMaxAge' => ['Integer'], + 'requiredMinAge' => ['Integer'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suggestedAge' => ['QuantitativeValue'], + 'suggestedGender' => ['GenderType', 'Text'], + 'suggestedMaxAge' => ['Number'], + 'suggestedMeasurement' => ['QuantitativeValue'], + 'suggestedMinAge' => ['Number'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'childMaxAge' => 'Maximal age of the child.', + 'childMinAge' => 'Minimal age of the child.', + 'description' => 'A description of the item.', + '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.', + 'geographicArea' => 'The geographic area associated with the audience.', + 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'requiredGender' => 'Audiences defined by a person\'s gender.', + 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', + 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', + 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', + 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', + 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', + 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ParentalSupport.php b/src/models/jsonld/ParentalSupport.php index 0ebe744d2..ccfb5dcc8 100644 --- a/src/models/jsonld/ParentalSupport.php +++ b/src/models/jsonld/ParentalSupport.php @@ -23,126 +23,126 @@ */ class ParentalSupport extends MetaJsonLd implements ParentalSupportInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ParentalSupportTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ParentalSupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ParentalSupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'ParentalSupport: this is a benefit for parental support.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ParentalSupportTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ParentalSupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ParentalSupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'ParentalSupport: this is a benefit for parental support.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Park.php b/src/models/jsonld/Park.php index 91b52f47a..f53a4778c 100644 --- a/src/models/jsonld/Park.php +++ b/src/models/jsonld/Park.php @@ -23,215 +23,215 @@ */ class Park extends MetaJsonLd implements ParkInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use ParkTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Park'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Park'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A park.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ParkTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Park'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Park'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A park.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ParkingFacility.php b/src/models/jsonld/ParkingFacility.php index dc4017341..b2911756b 100644 --- a/src/models/jsonld/ParkingFacility.php +++ b/src/models/jsonld/ParkingFacility.php @@ -23,215 +23,215 @@ */ class ParkingFacility extends MetaJsonLd implements ParkingFacilityInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use ParkingFacilityTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ParkingFacility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ParkingFacility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A parking lot or other parking facility.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ParkingFacilityTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ParkingFacility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ParkingFacility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A parking lot or other parking facility.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ParkingMap.php b/src/models/jsonld/ParkingMap.php index cba1dfe10..02ef670ad 100644 --- a/src/models/jsonld/ParkingMap.php +++ b/src/models/jsonld/ParkingMap.php @@ -23,126 +23,126 @@ */ class ParkingMap extends MetaJsonLd implements ParkingMapInterface, MapCategoryTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ParkingMapTrait; - use MapCategoryTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ParkingMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ParkingMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A parking map.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ParkingMapTrait; + use MapCategoryTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ParkingMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ParkingMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A parking map.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PartiallyInForce.php b/src/models/jsonld/PartiallyInForce.php index b2ba0809d..95bad8b94 100644 --- a/src/models/jsonld/PartiallyInForce.php +++ b/src/models/jsonld/PartiallyInForce.php @@ -23,127 +23,127 @@ */ class PartiallyInForce extends MetaJsonLd implements PartiallyInForceInterface, LegalForceStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PartiallyInForceTrait; - use LegalForceStatusTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PartiallyInForce'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PartiallyInForce'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalForceStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that parts of the legislation are in force, and parts are not.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PartiallyInForceTrait; + use LegalForceStatusTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PartiallyInForce'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PartiallyInForce'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalForceStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that parts of the legislation are in force, and parts are not.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Pathology.php b/src/models/jsonld/Pathology.php index c07217ca6..c9e94becb 100644 --- a/src/models/jsonld/Pathology.php +++ b/src/models/jsonld/Pathology.php @@ -27,128 +27,128 @@ */ class Pathology extends MetaJsonLd implements PathologyInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use PathologyTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Pathology'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Pathology'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the study of the cause, origin and nature of a disease state, including its consequences as a result of manifestation of the disease. In clinical care, the term is used to designate a branch of medicine using laboratory tests to diagnose and determine the prognostic significance of illness.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PathologyTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Pathology'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Pathology'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the study of the cause, origin and nature of a disease state, including its consequences as a result of manifestation of the disease. In clinical care, the term is used to designate a branch of medicine using laboratory tests to diagnose and determine the prognostic significance of illness.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PathologyTest.php b/src/models/jsonld/PathologyTest.php index 4683c1591..701c4f34f 100644 --- a/src/models/jsonld/PathologyTest.php +++ b/src/models/jsonld/PathologyTest.php @@ -24,151 +24,151 @@ */ class PathologyTest extends MetaJsonLd implements PathologyTestInterface, MedicalTestInterface, MedicalEntityInterface, ThingInterface { - use PathologyTestTrait; - use MedicalTestTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PathologyTest'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PathologyTest'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTest'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical test performed by a laboratory that typically involves examination of a tissue sample by a pathologist.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'affectedBy' => ['Drug'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'normalRange' => ['Text', 'MedicalEnumeration'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'signDetected' => ['MedicalSign'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'tissueSample' => ['Text'], - 'url' => ['URL'], - 'usedToDiagnose' => ['MedicalCondition'], - 'usesDevice' => ['MedicalDevice'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'affectedBy' => 'Drugs that affect the test\'s results.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'signDetected' => 'A sign detected by the test.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'tissueSample' => 'The type of tissue sample required for the test.', - 'url' => 'URL of the item.', - 'usedToDiagnose' => 'A condition the test is used to diagnose.', - 'usesDevice' => 'Device used to perform the test.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PathologyTestTrait; + use MedicalTestTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PathologyTest'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PathologyTest'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTest'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical test performed by a laboratory that typically involves examination of a tissue sample by a pathologist.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'affectedBy' => ['Drug'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'normalRange' => ['Text', 'MedicalEnumeration'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'signDetected' => ['MedicalSign'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'tissueSample' => ['Text'], + 'url' => ['URL'], + 'usedToDiagnose' => ['MedicalCondition'], + 'usesDevice' => ['MedicalDevice'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'affectedBy' => 'Drugs that affect the test\'s results.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'normalRange' => 'Range of acceptable values for a typical patient, when applicable.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'signDetected' => 'A sign detected by the test.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'tissueSample' => 'The type of tissue sample required for the test.', + 'url' => 'URL of the item.', + 'usedToDiagnose' => 'A condition the test is used to diagnose.', + 'usesDevice' => 'Device used to perform the test.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Patient.php b/src/models/jsonld/Patient.php index bb2575109..02ac149d7 100644 --- a/src/models/jsonld/Patient.php +++ b/src/models/jsonld/Patient.php @@ -23,278 +23,278 @@ */ class Patient extends MetaJsonLd implements PatientInterface, MedicalAudienceInterface, PeopleAudienceInterface, AudienceInterface, IntangibleInterface, ThingInterface, PersonInterface { - use PatientTrait; - use MedicalAudienceTrait; - use PeopleAudienceTrait; - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - use PersonTrait; + use PatientTrait; + use MedicalAudienceTrait; + use PeopleAudienceTrait; + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + use PersonTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Patient'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Patient'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Patient'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Patient'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalAudience'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalAudience'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A patient is any person recipient of health care services.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A patient is any person recipient of health care services.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalName' => ['Text'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'affiliation' => ['Organization'], - 'alternateName' => ['Text'], - 'alumniOf' => ['Organization', 'EducationalOrganization'], - 'audienceType' => ['Text'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'birthDate' => ['Date'], - 'birthPlace' => ['Place'], - 'brand' => ['Brand', 'Organization'], - 'callSign' => ['Text'], - 'children' => ['Person'], - 'colleague' => ['Person', 'URL'], - 'colleagues' => ['Person'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'deathDate' => ['Date'], - 'deathPlace' => ['Place'], - 'description' => ['Text'], - 'diagnosis' => ['MedicalCondition'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'familyName' => ['Text'], - 'faxNumber' => ['Text'], - 'follows' => ['Person'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'gender' => ['GenderType', 'Text'], - 'geographicArea' => ['AdministrativeArea'], - 'givenName' => ['Text'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasOccupation' => ['Occupation'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthCondition' => ['MedicalCondition'], - 'height' => ['QuantitativeValue', 'Distance'], - 'homeLocation' => ['ContactPoint', 'Place'], - 'honorificPrefix' => ['Text'], - 'honorificSuffix' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'jobTitle' => ['DefinedTerm', 'Text'], - 'knows' => ['Person'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nationality' => ['Country'], - 'netWorth' => ['MonetaryAmount', 'PriceSpecification'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parent' => ['Person'], - 'parents' => ['Person'], - 'performerIn' => ['Event'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'relatedTo' => ['Person'], - 'requiredGender' => ['Text'], - 'requiredMaxAge' => ['Integer'], - 'requiredMinAge' => ['Integer'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'sibling' => ['Person'], - 'siblings' => ['Person'], - 'sponsor' => ['Organization', 'Person'], - 'spouse' => ['Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suggestedAge' => ['QuantitativeValue'], - 'suggestedGender' => ['GenderType', 'Text'], - 'suggestedMaxAge' => ['Number'], - 'suggestedMeasurement' => ['QuantitativeValue'], - 'suggestedMinAge' => ['Number'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'url' => ['URL'], - 'vatID' => ['Text'], - 'weight' => ['QuantitativeValue'], - 'workLocation' => ['ContactPoint', 'Place'], - 'worksFor' => ['Organization'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalName' => ['Text'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'affiliation' => ['Organization'], + 'alternateName' => ['Text'], + 'alumniOf' => ['Organization', 'EducationalOrganization'], + 'audienceType' => ['Text'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'birthDate' => ['Date'], + 'birthPlace' => ['Place'], + 'brand' => ['Brand', 'Organization'], + 'callSign' => ['Text'], + 'children' => ['Person'], + 'colleague' => ['Person', 'URL'], + 'colleagues' => ['Person'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'deathDate' => ['Date'], + 'deathPlace' => ['Place'], + 'description' => ['Text'], + 'diagnosis' => ['MedicalCondition'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'familyName' => ['Text'], + 'faxNumber' => ['Text'], + 'follows' => ['Person'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'gender' => ['GenderType', 'Text'], + 'geographicArea' => ['AdministrativeArea'], + 'givenName' => ['Text'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasOccupation' => ['Occupation'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthCondition' => ['MedicalCondition'], + 'height' => ['QuantitativeValue', 'Distance'], + 'homeLocation' => ['ContactPoint', 'Place'], + 'honorificPrefix' => ['Text'], + 'honorificSuffix' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'jobTitle' => ['DefinedTerm', 'Text'], + 'knows' => ['Person'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nationality' => ['Country'], + 'netWorth' => ['MonetaryAmount', 'PriceSpecification'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parent' => ['Person'], + 'parents' => ['Person'], + 'performerIn' => ['Event'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'relatedTo' => ['Person'], + 'requiredGender' => ['Text'], + 'requiredMaxAge' => ['Integer'], + 'requiredMinAge' => ['Integer'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'sibling' => ['Person'], + 'siblings' => ['Person'], + 'sponsor' => ['Organization', 'Person'], + 'spouse' => ['Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suggestedAge' => ['QuantitativeValue'], + 'suggestedGender' => ['GenderType', 'Text'], + 'suggestedMaxAge' => ['Number'], + 'suggestedMeasurement' => ['QuantitativeValue'], + 'suggestedMinAge' => ['Number'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'url' => ['URL'], + 'vatID' => ['Text'], + 'weight' => ['QuantitativeValue'], + 'workLocation' => ['ContactPoint', 'Place'], + 'worksFor' => ['Organization'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'additionalName' => 'An additional name for a Person, can be used for a middle name.', - '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.', - 'address' => 'Physical address of the item.', - 'affiliation' => 'An organization that this person is affiliated with. For example, a school/university, a club, or a team.', - 'alternateName' => 'An alias for the item.', - 'alumniOf' => 'An organization that the person is an alumni of.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'birthDate' => 'Date of birth.', - 'birthPlace' => 'The place where the person was born.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'children' => 'A child of the person.', - 'colleague' => 'A colleague of the person.', - 'colleagues' => 'A colleague of the person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'deathDate' => 'Date of death.', - 'deathPlace' => 'The place where the person died.', - 'description' => 'A description of the item.', - 'diagnosis' => 'One or more alternative conditions considered in the differential diagnosis process as output of a diagnosis process.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'familyName' => 'Family name. In the U.S., the last name of a Person.', - 'faxNumber' => 'The fax number.', - 'follows' => 'The most generic uni-directional social relation.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gender' => 'Gender of something, typically a [[Person]], but possibly also fictional characters, animals, etc. While https://schema.org/Male and https://schema.org/Female may be used, text strings are also acceptable for people who do not identify as a binary gender. The [[gender]] property can also be used in an extended sense to cover e.g. the gender of sports teams. As with the gender of individuals, we do not try to enumerate all possibilities. A mixed-gender [[SportsTeam]] can be indicated with a text value of "Mixed".', - 'geographicArea' => 'The geographic area associated with the audience.', - 'givenName' => 'Given name. In the U.S., the first name of a Person.', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasOccupation' => 'The Person\'s occupation. For past professions, use Role for expressing dates.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', - 'height' => 'The height of the item.', - 'homeLocation' => 'A contact location for a person\'s residence.', - 'honorificPrefix' => 'An honorific prefix preceding a Person\'s name such as Dr/Mrs/Mr.', - 'honorificSuffix' => 'An honorific suffix following a Person\'s name such as M.D./PhD/MSCSW.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - 'jobTitle' => 'The job title of the person (for example, Financial Manager).', - 'knows' => 'The most generic bi-directional social/work relation.', - '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.', - '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).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nationality' => 'Nationality of the person.', - 'netWorth' => 'The total financial value of the person as calculated by subtracting assets from liabilities.', - 'owns' => 'Products owned by the organization or person.', - 'parent' => 'A parent of this person.', - 'parents' => 'A parents of the person.', - 'performerIn' => 'Event that this person is a performer or participant in.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'relatedTo' => 'The most generic familial relation.', - 'requiredGender' => 'Audiences defined by a person\'s gender.', - 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', - 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'sibling' => 'A sibling of the person.', - 'siblings' => 'A sibling of the person.', - '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.', - 'spouse' => 'The person\'s spouse.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', - 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', - 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', - 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', - 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.', - 'weight' => 'The weight of the product or person.', - 'workLocation' => 'A contact location for a person\'s place of work.', - 'worksFor' => 'Organizations that the person works for.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'additionalName' => 'An additional name for a Person, can be used for a middle name.', + '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.', + 'address' => 'Physical address of the item.', + 'affiliation' => 'An organization that this person is affiliated with. For example, a school/university, a club, or a team.', + 'alternateName' => 'An alias for the item.', + 'alumniOf' => 'An organization that the person is an alumni of.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'birthDate' => 'Date of birth.', + 'birthPlace' => 'The place where the person was born.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'children' => 'A child of the person.', + 'colleague' => 'A colleague of the person.', + 'colleagues' => 'A colleague of the person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'deathDate' => 'Date of death.', + 'deathPlace' => 'The place where the person died.', + 'description' => 'A description of the item.', + 'diagnosis' => 'One or more alternative conditions considered in the differential diagnosis process as output of a diagnosis process.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'familyName' => 'Family name. In the U.S., the last name of a Person.', + 'faxNumber' => 'The fax number.', + 'follows' => 'The most generic uni-directional social relation.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gender' => 'Gender of something, typically a [[Person]], but possibly also fictional characters, animals, etc. While https://schema.org/Male and https://schema.org/Female may be used, text strings are also acceptable for people who do not identify as a binary gender. The [[gender]] property can also be used in an extended sense to cover e.g. the gender of sports teams. As with the gender of individuals, we do not try to enumerate all possibilities. A mixed-gender [[SportsTeam]] can be indicated with a text value of "Mixed".', + 'geographicArea' => 'The geographic area associated with the audience.', + 'givenName' => 'Given name. In the U.S., the first name of a Person.', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasOccupation' => 'The Person\'s occupation. For past professions, use Role for expressing dates.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', + 'height' => 'The height of the item.', + 'homeLocation' => 'A contact location for a person\'s residence.', + 'honorificPrefix' => 'An honorific prefix preceding a Person\'s name such as Dr/Mrs/Mr.', + 'honorificSuffix' => 'An honorific suffix following a Person\'s name such as M.D./PhD/MSCSW.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + 'jobTitle' => 'The job title of the person (for example, Financial Manager).', + 'knows' => 'The most generic bi-directional social/work relation.', + '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.', + '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).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nationality' => 'Nationality of the person.', + 'netWorth' => 'The total financial value of the person as calculated by subtracting assets from liabilities.', + 'owns' => 'Products owned by the organization or person.', + 'parent' => 'A parent of this person.', + 'parents' => 'A parents of the person.', + 'performerIn' => 'Event that this person is a performer or participant in.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'relatedTo' => 'The most generic familial relation.', + 'requiredGender' => 'Audiences defined by a person\'s gender.', + 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', + 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'sibling' => 'A sibling of the person.', + 'siblings' => 'A sibling of the person.', + '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.', + 'spouse' => 'The person\'s spouse.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', + 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', + 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', + 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', + 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + 'weight' => 'The weight of the product or person.', + 'workLocation' => 'A contact location for a person\'s place of work.', + 'worksFor' => 'Organizations that the person works for.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PatientExperienceHealthAspect.php b/src/models/jsonld/PatientExperienceHealthAspect.php index d7359c762..cd0f2a762 100644 --- a/src/models/jsonld/PatientExperienceHealthAspect.php +++ b/src/models/jsonld/PatientExperienceHealthAspect.php @@ -25,126 +25,126 @@ */ class PatientExperienceHealthAspect extends MetaJsonLd implements PatientExperienceHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PatientExperienceHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PatientExperienceHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PatientExperienceHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about the real life experience of patients or people that have lived a similar experience about the topic. May be forums, topics, Q-and-A and related material.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PatientExperienceHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PatientExperienceHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PatientExperienceHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about the real life experience of patients or people that have lived a similar experience about the topic. May be forums, topics, Q-and-A and related material.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PawnShop.php b/src/models/jsonld/PawnShop.php index e022d6079..03e3dac96 100644 --- a/src/models/jsonld/PawnShop.php +++ b/src/models/jsonld/PawnShop.php @@ -24,331 +24,331 @@ */ class PawnShop extends MetaJsonLd implements PawnShopInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use PawnShopTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use PawnShopTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PawnShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PawnShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PawnShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PawnShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A shop that will buy, or lend money against the security of, personal possessions.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A shop that will buy, or lend money against the security of, personal possessions.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PayAction.php b/src/models/jsonld/PayAction.php index 727a5d64c..7a46da206 100644 --- a/src/models/jsonld/PayAction.php +++ b/src/models/jsonld/PayAction.php @@ -23,155 +23,155 @@ */ class PayAction extends MetaJsonLd implements PayActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use PayActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PayAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PayAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent pays a price to a participant.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PayActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PayAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PayAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent pays a price to a participant.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentAutomaticallyApplied.php b/src/models/jsonld/PaymentAutomaticallyApplied.php index ca49fc5a6..0a8df0032 100644 --- a/src/models/jsonld/PaymentAutomaticallyApplied.php +++ b/src/models/jsonld/PaymentAutomaticallyApplied.php @@ -23,127 +23,127 @@ */ class PaymentAutomaticallyApplied extends MetaJsonLd implements PaymentAutomaticallyAppliedInterface, PaymentStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaymentAutomaticallyAppliedTrait; - use PaymentStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentAutomaticallyApplied'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentAutomaticallyApplied'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An automatic payment system is in place and will be used.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentAutomaticallyAppliedTrait; + use PaymentStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentAutomaticallyApplied'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentAutomaticallyApplied'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An automatic payment system is in place and will be used.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentCard.php b/src/models/jsonld/PaymentCard.php index 2ff2a2e75..8182d4ae4 100644 --- a/src/models/jsonld/PaymentCard.php +++ b/src/models/jsonld/PaymentCard.php @@ -24,190 +24,190 @@ */ class PaymentCard extends MetaJsonLd implements PaymentCardInterface, PaymentMethodInterface, EnumerationInterface, IntangibleInterface, ThingInterface, FinancialProductInterface, ServiceInterface { - use PaymentCardTrait; - use PaymentMethodTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use FinancialProductTrait; - use ServiceTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentCard'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentCard'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PaymentMethod'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A payment method using a credit, debit, store or other card to associate the payment with an account.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'cashBack' => ['Boolean', 'Number'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'contactlessPayment' => ['Boolean'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'floorLimit' => ['MonetaryAmount'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'monthlyMinimumRepaymentAmount' => ['Number', 'MonetaryAmount'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'cashBack' => 'A cardholder benefit that pays the cardholder a small percentage of their net expenditures.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'contactlessPayment' => 'A secure method for consumers to purchase products or services via debit, credit or smartcards by using RFID or NFC technology.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'floorLimit' => 'A floor limit is the amount of money above which credit card transactions must be authorized.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'monthlyMinimumRepaymentAmount' => 'The minimum payment is the lowest amount of money that one is required to pay on a credit card statement each month.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentCardTrait; + use PaymentMethodTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use FinancialProductTrait; + use ServiceTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentCard'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentCard'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PaymentMethod'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A payment method using a credit, debit, store or other card to associate the payment with an account.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'cashBack' => ['Boolean', 'Number'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'contactlessPayment' => ['Boolean'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'floorLimit' => ['MonetaryAmount'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'monthlyMinimumRepaymentAmount' => ['Number', 'MonetaryAmount'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'cashBack' => 'A cardholder benefit that pays the cardholder a small percentage of their net expenditures.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'contactlessPayment' => 'A secure method for consumers to purchase products or services via debit, credit or smartcards by using RFID or NFC technology.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'floorLimit' => 'A floor limit is the amount of money above which credit card transactions must be authorized.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'monthlyMinimumRepaymentAmount' => 'The minimum payment is the lowest amount of money that one is required to pay on a credit card statement each month.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentChargeSpecification.php b/src/models/jsonld/PaymentChargeSpecification.php index c46f0fbff..a801bc88f 100644 --- a/src/models/jsonld/PaymentChargeSpecification.php +++ b/src/models/jsonld/PaymentChargeSpecification.php @@ -23,146 +23,146 @@ */ class PaymentChargeSpecification extends MetaJsonLd implements PaymentChargeSpecificationInterface, PriceSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use PaymentChargeSpecificationTrait; - use PriceSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentChargeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentChargeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The costs of settling the payment using a particular payment method.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'appliesToDeliveryMethod' => ['DeliveryMethod'], - 'appliesToPaymentMethod' => ['PaymentMethod'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxPrice' => ['Number'], - 'minPrice' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'valueAddedTaxIncluded' => ['Boolean'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'appliesToDeliveryMethod' => 'The delivery method(s) to which the delivery charge or payment charge specification applies.', - 'appliesToPaymentMethod' => 'The payment method(s) to which the payment charge specification applies.', - 'description' => 'A description of the item.', - '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.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxPrice' => 'The highest price if the price is a range.', - 'minPrice' => 'The lowest price if the price is a range.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentChargeSpecificationTrait; + use PriceSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentChargeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentChargeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The costs of settling the payment using a particular payment method.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'appliesToDeliveryMethod' => ['DeliveryMethod'], + 'appliesToPaymentMethod' => ['PaymentMethod'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxPrice' => ['Number'], + 'minPrice' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'valueAddedTaxIncluded' => ['Boolean'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'appliesToDeliveryMethod' => 'The delivery method(s) to which the delivery charge or payment charge specification applies.', + 'appliesToPaymentMethod' => 'The payment method(s) to which the payment charge specification applies.', + 'description' => 'A description of the item.', + '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.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxPrice' => 'The highest price if the price is a range.', + 'minPrice' => 'The lowest price if the price is a range.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentComplete.php b/src/models/jsonld/PaymentComplete.php index 3f27d729d..5a6c50089 100644 --- a/src/models/jsonld/PaymentComplete.php +++ b/src/models/jsonld/PaymentComplete.php @@ -23,127 +23,127 @@ */ class PaymentComplete extends MetaJsonLd implements PaymentCompleteInterface, PaymentStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaymentCompleteTrait; - use PaymentStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentComplete'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentComplete'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The payment has been received and processed.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentCompleteTrait; + use PaymentStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentComplete'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentComplete'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The payment has been received and processed.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentDeclined.php b/src/models/jsonld/PaymentDeclined.php index e16fa43fc..de58d7f5d 100644 --- a/src/models/jsonld/PaymentDeclined.php +++ b/src/models/jsonld/PaymentDeclined.php @@ -23,127 +23,127 @@ */ class PaymentDeclined extends MetaJsonLd implements PaymentDeclinedInterface, PaymentStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaymentDeclinedTrait; - use PaymentStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentDeclined'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentDeclined'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The payee received the payment, but it was declined for some reason.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentDeclinedTrait; + use PaymentStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentDeclined'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentDeclined'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The payee received the payment, but it was declined for some reason.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentDue.php b/src/models/jsonld/PaymentDue.php index 80309ddbd..351e6840f 100644 --- a/src/models/jsonld/PaymentDue.php +++ b/src/models/jsonld/PaymentDue.php @@ -23,127 +23,127 @@ */ class PaymentDue extends MetaJsonLd implements PaymentDueInterface, PaymentStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaymentDueTrait; - use PaymentStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentDue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentDue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The payment is due, but still within an acceptable time to be received.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentDueTrait; + use PaymentStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentDue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentDue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The payment is due, but still within an acceptable time to be received.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentMethod.php b/src/models/jsonld/PaymentMethod.php index f74ba8790..c37ee72fc 100644 --- a/src/models/jsonld/PaymentMethod.php +++ b/src/models/jsonld/PaymentMethod.php @@ -35,125 +35,125 @@ */ class PaymentMethod extends MetaJsonLd implements PaymentMethodInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaymentMethodTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentMethod'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentMethod'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A payment method is a standardized procedure for transferring the monetary amount for a purchase. Payment methods are characterized by the legal and technical structures used, and by the organization or group carrying out the transaction.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#ByBankTransferInAdvance\\n* http://purl.org/goodrelations/v1#ByInvoice\\n* http://purl.org/goodrelations/v1#Cash\\n* http://purl.org/goodrelations/v1#CheckInAdvance\\n* http://purl.org/goodrelations/v1#COD\\n* http://purl.org/goodrelations/v1#DirectDebit\\n* http://purl.org/goodrelations/v1#GoogleCheckout\\n* http://purl.org/goodrelations/v1#PayPal\\n* http://purl.org/goodrelations/v1#PaySwarm\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentMethodTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentMethod'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentMethod'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A payment method is a standardized procedure for transferring the monetary amount for a purchase. Payment methods are characterized by the legal and technical structures used, and by the organization or group carrying out the transaction.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#ByBankTransferInAdvance\\n* http://purl.org/goodrelations/v1#ByInvoice\\n* http://purl.org/goodrelations/v1#Cash\\n* http://purl.org/goodrelations/v1#CheckInAdvance\\n* http://purl.org/goodrelations/v1#COD\\n* http://purl.org/goodrelations/v1#DirectDebit\\n* http://purl.org/goodrelations/v1#GoogleCheckout\\n* http://purl.org/goodrelations/v1#PayPal\\n* http://purl.org/goodrelations/v1#PaySwarm\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentPastDue.php b/src/models/jsonld/PaymentPastDue.php index 61dd2924c..acd2fe883 100644 --- a/src/models/jsonld/PaymentPastDue.php +++ b/src/models/jsonld/PaymentPastDue.php @@ -23,127 +23,127 @@ */ class PaymentPastDue extends MetaJsonLd implements PaymentPastDueInterface, PaymentStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaymentPastDueTrait; - use PaymentStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentPastDue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentPastDue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PaymentStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The payment is due and considered late.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentPastDueTrait; + use PaymentStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentPastDue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentPastDue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PaymentStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The payment is due and considered late.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentService.php b/src/models/jsonld/PaymentService.php index 3b6b2edbf..99c0e2f7e 100644 --- a/src/models/jsonld/PaymentService.php +++ b/src/models/jsonld/PaymentService.php @@ -24,178 +24,178 @@ */ class PaymentService extends MetaJsonLd implements PaymentServiceInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use PaymentServiceTrait; - use FinancialProductTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FinancialProduct'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Service to transfer funds from a person or organization to a beneficiary person or organization.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'feesAndCommissionsSpecification' => ['URL', 'Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interestRate' => ['Number', 'QuantitativeValue'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentServiceTrait; + use FinancialProductTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FinancialProduct'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Service to transfer funds from a person or organization to a beneficiary person or organization.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'feesAndCommissionsSpecification' => ['URL', 'Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interestRate' => ['Number', 'QuantitativeValue'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PaymentStatusType.php b/src/models/jsonld/PaymentStatusType.php index 623ab2dea..c792648a1 100644 --- a/src/models/jsonld/PaymentStatusType.php +++ b/src/models/jsonld/PaymentStatusType.php @@ -23,126 +23,126 @@ */ class PaymentStatusType extends MetaJsonLd implements PaymentStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PaymentStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PaymentStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PaymentStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific payment status. For example, PaymentDue, PaymentComplete, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PaymentStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PaymentStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PaymentStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific payment status. For example, PaymentDue, PaymentComplete, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Pediatric.php b/src/models/jsonld/Pediatric.php index b58b42999..d426eafaa 100644 --- a/src/models/jsonld/Pediatric.php +++ b/src/models/jsonld/Pediatric.php @@ -24,338 +24,338 @@ */ class Pediatric extends MetaJsonLd implements PediatricInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use PediatricTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use PediatricTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Pediatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Pediatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Pediatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Pediatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that specializes in the care of infants, children and adolescents.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that specializes in the care of infants, children and adolescents.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PeopleAudience.php b/src/models/jsonld/PeopleAudience.php index 8bfc5071c..dae82d088 100644 --- a/src/models/jsonld/PeopleAudience.php +++ b/src/models/jsonld/PeopleAudience.php @@ -24,145 +24,145 @@ */ class PeopleAudience extends MetaJsonLd implements PeopleAudienceInterface, AudienceInterface, IntangibleInterface, ThingInterface { - use PeopleAudienceTrait; - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PeopleAudience'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PeopleAudience'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of characteristics belonging to people, e.g. who compose an item\'s target audience.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'audienceType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'geographicArea' => ['AdministrativeArea'], - 'healthCondition' => ['MedicalCondition'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'requiredGender' => ['Text'], - 'requiredMaxAge' => ['Integer'], - 'requiredMinAge' => ['Integer'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suggestedAge' => ['QuantitativeValue'], - 'suggestedGender' => ['GenderType', 'Text'], - 'suggestedMaxAge' => ['Number'], - 'suggestedMeasurement' => ['QuantitativeValue'], - 'suggestedMinAge' => ['Number'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'description' => 'A description of the item.', - '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.', - 'geographicArea' => 'The geographic area associated with the audience.', - 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'requiredGender' => 'Audiences defined by a person\'s gender.', - 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', - 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', - 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', - 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', - 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', - 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PeopleAudienceTrait; + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PeopleAudience'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PeopleAudience'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of characteristics belonging to people, e.g. who compose an item\'s target audience.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'audienceType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'geographicArea' => ['AdministrativeArea'], + 'healthCondition' => ['MedicalCondition'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'requiredGender' => ['Text'], + 'requiredMaxAge' => ['Integer'], + 'requiredMinAge' => ['Integer'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suggestedAge' => ['QuantitativeValue'], + 'suggestedGender' => ['GenderType', 'Text'], + 'suggestedMaxAge' => ['Number'], + 'suggestedMeasurement' => ['QuantitativeValue'], + 'suggestedMinAge' => ['Number'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'description' => 'A description of the item.', + '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.', + 'geographicArea' => 'The geographic area associated with the audience.', + 'healthCondition' => 'Specifying the health condition(s) of a patient, medical study, or other target audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'requiredGender' => 'Audiences defined by a person\'s gender.', + 'requiredMaxAge' => 'Audiences defined by a person\'s maximum age.', + 'requiredMinAge' => 'Audiences defined by a person\'s minimum age.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', + 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', + 'suggestedMaxAge' => 'Maximum recommended age in years for the audience or user.', + 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', + 'suggestedMinAge' => 'Minimum recommended age in years for the audience or user.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PercutaneousProcedure.php b/src/models/jsonld/PercutaneousProcedure.php index b87d0195f..6184e3613 100644 --- a/src/models/jsonld/PercutaneousProcedure.php +++ b/src/models/jsonld/PercutaneousProcedure.php @@ -25,127 +25,127 @@ */ class PercutaneousProcedure extends MetaJsonLd implements PercutaneousProcedureInterface, MedicalProcedureTypeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PercutaneousProcedureTrait; - use MedicalProcedureTypeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PercutaneousProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PercutaneousProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalProcedureType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of medical procedure that involves percutaneous techniques, where access to organs or tissue is achieved via needle-puncture of the skin. For example, catheter-based procedures like stent delivery.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PercutaneousProcedureTrait; + use MedicalProcedureTypeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PercutaneousProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PercutaneousProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalProcedureType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of medical procedure that involves percutaneous techniques, where access to organs or tissue is achieved via needle-puncture of the skin. For example, catheter-based procedures like stent delivery.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PerformAction.php b/src/models/jsonld/PerformAction.php index f9f21ef48..3b8d2fbe2 100644 --- a/src/models/jsonld/PerformAction.php +++ b/src/models/jsonld/PerformAction.php @@ -23,153 +23,153 @@ */ class PerformAction extends MetaJsonLd implements PerformActionInterface, PlayActionInterface, ActionInterface, ThingInterface { - use PerformActionTrait; - use PlayActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PerformAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PerformAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlayAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of participating in performance arts.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'audience' => ['Audience'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'entertainmentBusiness' => ['EntertainmentBusiness'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'entertainmentBusiness' => 'A sub property of location. The entertainment business where the action occurred.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PerformActionTrait; + use PlayActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PerformAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PerformAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlayAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of participating in performance arts.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'audience' => ['Audience'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'entertainmentBusiness' => ['EntertainmentBusiness'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'entertainmentBusiness' => 'A sub property of location. The entertainment business where the action occurred.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PerformanceRole.php b/src/models/jsonld/PerformanceRole.php index 24adae1b8..a6f18c74e 100644 --- a/src/models/jsonld/PerformanceRole.php +++ b/src/models/jsonld/PerformanceRole.php @@ -24,133 +24,133 @@ */ class PerformanceRole extends MetaJsonLd implements PerformanceRoleInterface, RoleInterface, IntangibleInterface, ThingInterface { - use PerformanceRoleTrait; - use RoleTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PerformanceRole'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PerformanceRole'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Role'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A PerformanceRole is a Role that some entity places with regard to a theatrical performance, e.g. in a Movie, TVSeries etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'characterName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'namedPosition' => ['Text', 'URL'], - 'potentialAction' => ['Action'], - 'roleName' => ['Text', 'URL'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'characterName' => 'The name of a character played in some acting or performing role, i.e. in a PerformanceRole.', - 'description' => 'A description of the item.', - '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.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PerformanceRoleTrait; + use RoleTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PerformanceRole'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PerformanceRole'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Role'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A PerformanceRole is a Role that some entity places with regard to a theatrical performance, e.g. in a Movie, TVSeries etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'characterName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'namedPosition' => ['Text', 'URL'], + 'potentialAction' => ['Action'], + 'roleName' => ['Text', 'URL'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'characterName' => 'The name of a character played in some acting or performing role, i.e. in a PerformanceRole.', + 'description' => 'A description of the item.', + '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.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PerformingArtsTheater.php b/src/models/jsonld/PerformingArtsTheater.php index daadf428b..12486f75f 100644 --- a/src/models/jsonld/PerformingArtsTheater.php +++ b/src/models/jsonld/PerformingArtsTheater.php @@ -23,215 +23,215 @@ */ class PerformingArtsTheater extends MetaJsonLd implements PerformingArtsTheaterInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use PerformingArtsTheaterTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PerformingArtsTheater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PerformingArtsTheater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A theater or other performing art center.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PerformingArtsTheaterTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PerformingArtsTheater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PerformingArtsTheater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A theater or other performing art center.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PerformingGroup.php b/src/models/jsonld/PerformingGroup.php index 442e265d6..5c225838b 100644 --- a/src/models/jsonld/PerformingGroup.php +++ b/src/models/jsonld/PerformingGroup.php @@ -23,254 +23,254 @@ */ class PerformingGroup extends MetaJsonLd implements PerformingGroupInterface, OrganizationInterface, ThingInterface { - use PerformingGroupTrait; - use OrganizationTrait; - use ThingTrait; + use PerformingGroupTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PerformingGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PerformingGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PerformingGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PerformingGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A performance group, such as a band, an orchestra, or a circus.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A performance group, such as a band, an orchestra, or a circus.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Periodical.php b/src/models/jsonld/Periodical.php index b95706f1a..693bbbe6a 100644 --- a/src/models/jsonld/Periodical.php +++ b/src/models/jsonld/Periodical.php @@ -26,355 +26,355 @@ */ class Periodical extends MetaJsonLd implements PeriodicalInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use PeriodicalTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use PeriodicalTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Periodical'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Periodical'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Periodical'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Periodical'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A publication in any medium issued in successive parts bearing numerical or chronological designations and intended to continue indefinitely, such as a magazine, scholarly journal, or newspaper.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A publication in any medium issued in successive parts bearing numerical or chronological designations and intended to continue indefinitely, such as a magazine, scholarly journal, or newspaper.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Permit.php b/src/models/jsonld/Permit.php index 0188c427f..eb9577b9a 100644 --- a/src/models/jsonld/Permit.php +++ b/src/models/jsonld/Permit.php @@ -23,136 +23,136 @@ */ class Permit extends MetaJsonLd implements PermitInterface, IntangibleInterface, ThingInterface { - use PermitTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Permit'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Permit'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A permit issued by an organization, e.g. a parking pass.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'issuedBy' => ['Organization'], - 'issuedThrough' => ['Service'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'permitAudience' => ['Audience'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFor' => ['Duration'], - 'validFrom' => ['Date', 'DateTime'], - 'validIn' => ['AdministrativeArea'], - 'validUntil' => ['Date'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'issuedBy' => 'The organization issuing the ticket or permit.', - 'issuedThrough' => 'The service through which the permit was granted.', - '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.', - 'name' => 'The name of the item.', - 'permitAudience' => 'The target audience for this permit.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFor' => 'The duration of validity of a permit or similar thing.', - 'validFrom' => 'The date when the item becomes valid.', - 'validIn' => 'The geographic area where a permit or similar thing is valid.', - 'validUntil' => 'The date when the item is no longer valid.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PermitTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Permit'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Permit'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A permit issued by an organization, e.g. a parking pass.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'issuedBy' => ['Organization'], + 'issuedThrough' => ['Service'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'permitAudience' => ['Audience'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFor' => ['Duration'], + 'validFrom' => ['Date', 'DateTime'], + 'validIn' => ['AdministrativeArea'], + 'validUntil' => ['Date'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'issuedBy' => 'The organization issuing the ticket or permit.', + 'issuedThrough' => 'The service through which the permit was granted.', + '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.', + 'name' => 'The name of the item.', + 'permitAudience' => 'The target audience for this permit.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFor' => 'The duration of validity of a permit or similar thing.', + 'validFrom' => 'The date when the item becomes valid.', + 'validIn' => 'The geographic area where a permit or similar thing is valid.', + 'validUntil' => 'The date when the item is no longer valid.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Person.php b/src/models/jsonld/Person.php index 76891ebf0..32ae835b3 100644 --- a/src/models/jsonld/Person.php +++ b/src/models/jsonld/Person.php @@ -23,247 +23,247 @@ */ class Person extends MetaJsonLd implements PersonInterface, ThingInterface { - use PersonTrait; - use ThingTrait; + use PersonTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Person'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Person'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Person'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Person'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A person (alive, dead, undead, or fictional).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A person (alive, dead, undead, or fictional).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalName' => ['Text'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'affiliation' => ['Organization'], - 'alternateName' => ['Text'], - 'alumniOf' => ['Organization', 'EducationalOrganization'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'birthDate' => ['Date'], - 'birthPlace' => ['Place'], - 'brand' => ['Brand', 'Organization'], - 'callSign' => ['Text'], - 'children' => ['Person'], - 'colleague' => ['Person', 'URL'], - 'colleagues' => ['Person'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'deathDate' => ['Date'], - 'deathPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'familyName' => ['Text'], - 'faxNumber' => ['Text'], - 'follows' => ['Person'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'gender' => ['GenderType', 'Text'], - 'givenName' => ['Text'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasOccupation' => ['Occupation'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'height' => ['QuantitativeValue', 'Distance'], - 'homeLocation' => ['ContactPoint', 'Place'], - 'honorificPrefix' => ['Text'], - 'honorificSuffix' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'jobTitle' => ['DefinedTerm', 'Text'], - 'knows' => ['Person'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nationality' => ['Country'], - 'netWorth' => ['MonetaryAmount', 'PriceSpecification'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parent' => ['Person'], - 'parents' => ['Person'], - 'performerIn' => ['Event'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'relatedTo' => ['Person'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'sibling' => ['Person'], - 'siblings' => ['Person'], - 'sponsor' => ['Organization', 'Person'], - 'spouse' => ['Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'url' => ['URL'], - 'vatID' => ['Text'], - 'weight' => ['QuantitativeValue'], - 'workLocation' => ['ContactPoint', 'Place'], - 'worksFor' => ['Organization'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalName' => ['Text'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'affiliation' => ['Organization'], + 'alternateName' => ['Text'], + 'alumniOf' => ['Organization', 'EducationalOrganization'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'birthDate' => ['Date'], + 'birthPlace' => ['Place'], + 'brand' => ['Brand', 'Organization'], + 'callSign' => ['Text'], + 'children' => ['Person'], + 'colleague' => ['Person', 'URL'], + 'colleagues' => ['Person'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'deathDate' => ['Date'], + 'deathPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'familyName' => ['Text'], + 'faxNumber' => ['Text'], + 'follows' => ['Person'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'gender' => ['GenderType', 'Text'], + 'givenName' => ['Text'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasOccupation' => ['Occupation'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'height' => ['QuantitativeValue', 'Distance'], + 'homeLocation' => ['ContactPoint', 'Place'], + 'honorificPrefix' => ['Text'], + 'honorificSuffix' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'jobTitle' => ['DefinedTerm', 'Text'], + 'knows' => ['Person'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nationality' => ['Country'], + 'netWorth' => ['MonetaryAmount', 'PriceSpecification'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parent' => ['Person'], + 'parents' => ['Person'], + 'performerIn' => ['Event'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'relatedTo' => ['Person'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'sibling' => ['Person'], + 'siblings' => ['Person'], + 'sponsor' => ['Organization', 'Person'], + 'spouse' => ['Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'url' => ['URL'], + 'vatID' => ['Text'], + 'weight' => ['QuantitativeValue'], + 'workLocation' => ['ContactPoint', 'Place'], + 'worksFor' => ['Organization'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'additionalName' => 'An additional name for a Person, can be used for a middle name.', - '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.', - 'address' => 'Physical address of the item.', - 'affiliation' => 'An organization that this person is affiliated with. For example, a school/university, a club, or a team.', - 'alternateName' => 'An alias for the item.', - 'alumniOf' => 'An organization that the person is an alumni of.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'birthDate' => 'Date of birth.', - 'birthPlace' => 'The place where the person was born.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'children' => 'A child of the person.', - 'colleague' => 'A colleague of the person.', - 'colleagues' => 'A colleague of the person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'deathDate' => 'Date of death.', - 'deathPlace' => 'The place where the person died.', - 'description' => 'A description of the item.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'familyName' => 'Family name. In the U.S., the last name of a Person.', - 'faxNumber' => 'The fax number.', - 'follows' => 'The most generic uni-directional social relation.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gender' => 'Gender of something, typically a [[Person]], but possibly also fictional characters, animals, etc. While https://schema.org/Male and https://schema.org/Female may be used, text strings are also acceptable for people who do not identify as a binary gender. The [[gender]] property can also be used in an extended sense to cover e.g. the gender of sports teams. As with the gender of individuals, we do not try to enumerate all possibilities. A mixed-gender [[SportsTeam]] can be indicated with a text value of "Mixed".', - 'givenName' => 'Given name. In the U.S., the first name of a Person.', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasOccupation' => 'The Person\'s occupation. For past professions, use Role for expressing dates.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'height' => 'The height of the item.', - 'homeLocation' => 'A contact location for a person\'s residence.', - 'honorificPrefix' => 'An honorific prefix preceding a Person\'s name such as Dr/Mrs/Mr.', - 'honorificSuffix' => 'An honorific suffix following a Person\'s name such as M.D./PhD/MSCSW.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - 'jobTitle' => 'The job title of the person (for example, Financial Manager).', - 'knows' => 'The most generic bi-directional social/work relation.', - '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.', - '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).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nationality' => 'Nationality of the person.', - 'netWorth' => 'The total financial value of the person as calculated by subtracting assets from liabilities.', - 'owns' => 'Products owned by the organization or person.', - 'parent' => 'A parent of this person.', - 'parents' => 'A parents of the person.', - 'performerIn' => 'Event that this person is a performer or participant in.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'relatedTo' => 'The most generic familial relation.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'sibling' => 'A sibling of the person.', - 'siblings' => 'A sibling of the person.', - '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.', - 'spouse' => 'The person\'s spouse.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.', - 'weight' => 'The weight of the product or person.', - 'workLocation' => 'A contact location for a person\'s place of work.', - 'worksFor' => 'Organizations that the person works for.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'additionalName' => 'An additional name for a Person, can be used for a middle name.', + '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.', + 'address' => 'Physical address of the item.', + 'affiliation' => 'An organization that this person is affiliated with. For example, a school/university, a club, or a team.', + 'alternateName' => 'An alias for the item.', + 'alumniOf' => 'An organization that the person is an alumni of.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'birthDate' => 'Date of birth.', + 'birthPlace' => 'The place where the person was born.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'children' => 'A child of the person.', + 'colleague' => 'A colleague of the person.', + 'colleagues' => 'A colleague of the person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'deathDate' => 'Date of death.', + 'deathPlace' => 'The place where the person died.', + 'description' => 'A description of the item.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'familyName' => 'Family name. In the U.S., the last name of a Person.', + 'faxNumber' => 'The fax number.', + 'follows' => 'The most generic uni-directional social relation.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gender' => 'Gender of something, typically a [[Person]], but possibly also fictional characters, animals, etc. While https://schema.org/Male and https://schema.org/Female may be used, text strings are also acceptable for people who do not identify as a binary gender. The [[gender]] property can also be used in an extended sense to cover e.g. the gender of sports teams. As with the gender of individuals, we do not try to enumerate all possibilities. A mixed-gender [[SportsTeam]] can be indicated with a text value of "Mixed".', + 'givenName' => 'Given name. In the U.S., the first name of a Person.', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasOccupation' => 'The Person\'s occupation. For past professions, use Role for expressing dates.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'height' => 'The height of the item.', + 'homeLocation' => 'A contact location for a person\'s residence.', + 'honorificPrefix' => 'An honorific prefix preceding a Person\'s name such as Dr/Mrs/Mr.', + 'honorificSuffix' => 'An honorific suffix following a Person\'s name such as M.D./PhD/MSCSW.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + 'jobTitle' => 'The job title of the person (for example, Financial Manager).', + 'knows' => 'The most generic bi-directional social/work relation.', + '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.', + '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).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nationality' => 'Nationality of the person.', + 'netWorth' => 'The total financial value of the person as calculated by subtracting assets from liabilities.', + 'owns' => 'Products owned by the organization or person.', + 'parent' => 'A parent of this person.', + 'parents' => 'A parents of the person.', + 'performerIn' => 'Event that this person is a performer or participant in.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'relatedTo' => 'The most generic familial relation.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'sibling' => 'A sibling of the person.', + 'siblings' => 'A sibling of the person.', + '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.', + 'spouse' => 'The person\'s spouse.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + 'weight' => 'The weight of the product or person.', + 'workLocation' => 'A contact location for a person\'s place of work.', + 'worksFor' => 'Organizations that the person works for.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PetStore.php b/src/models/jsonld/PetStore.php index 3a856819f..fe704488c 100644 --- a/src/models/jsonld/PetStore.php +++ b/src/models/jsonld/PetStore.php @@ -23,331 +23,331 @@ */ class PetStore extends MetaJsonLd implements PetStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use PetStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use PetStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PetStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PetStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PetStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PetStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A pet store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A pet store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Pharmacy.php b/src/models/jsonld/Pharmacy.php index 0e1441dd5..296e57a38 100644 --- a/src/models/jsonld/Pharmacy.php +++ b/src/models/jsonld/Pharmacy.php @@ -23,338 +23,338 @@ */ class Pharmacy extends MetaJsonLd implements PharmacyInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalOrganizationInterface { - use PharmacyTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalOrganizationTrait; + use PharmacyTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalOrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Pharmacy'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Pharmacy'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Pharmacy'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Pharmacy'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A pharmacy or drugstore.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A pharmacy or drugstore.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PharmacySpecialty.php b/src/models/jsonld/PharmacySpecialty.php index ad3c0c68c..53386903a 100644 --- a/src/models/jsonld/PharmacySpecialty.php +++ b/src/models/jsonld/PharmacySpecialty.php @@ -24,128 +24,128 @@ */ class PharmacySpecialty extends MetaJsonLd implements PharmacySpecialtyInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use PharmacySpecialtyTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PharmacySpecialty'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PharmacySpecialty'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The practice or art and science of preparing and dispensing drugs and medicines.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PharmacySpecialtyTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PharmacySpecialty'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PharmacySpecialty'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The practice or art and science of preparing and dispensing drugs and medicines.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Photograph.php b/src/models/jsonld/Photograph.php index 5989854eb..d4fa27217 100644 --- a/src/models/jsonld/Photograph.php +++ b/src/models/jsonld/Photograph.php @@ -23,346 +23,346 @@ */ class Photograph extends MetaJsonLd implements PhotographInterface, CreativeWorkInterface, ThingInterface { - use PhotographTrait; - use CreativeWorkTrait; - use ThingTrait; + use PhotographTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Photograph'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Photograph'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Photograph'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Photograph'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A photograph.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A photograph.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PhotographAction.php b/src/models/jsonld/PhotographAction.php index 493c1964c..10aa03a26 100644 --- a/src/models/jsonld/PhotographAction.php +++ b/src/models/jsonld/PhotographAction.php @@ -23,147 +23,147 @@ */ class PhotographAction extends MetaJsonLd implements PhotographActionInterface, CreateActionInterface, ActionInterface, ThingInterface { - use PhotographActionTrait; - use CreateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PhotographAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PhotographAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of capturing still images of objects using a camera.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PhotographActionTrait; + use CreateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PhotographAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PhotographAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of capturing still images of objects using a camera.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PhysicalActivity.php b/src/models/jsonld/PhysicalActivity.php index f0c73a85b..01e0e1bc9 100644 --- a/src/models/jsonld/PhysicalActivity.php +++ b/src/models/jsonld/PhysicalActivity.php @@ -26,147 +26,147 @@ */ class PhysicalActivity extends MetaJsonLd implements PhysicalActivityInterface, LifestyleModificationInterface, MedicalEntityInterface, ThingInterface { - use PhysicalActivityTrait; - use LifestyleModificationTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PhysicalActivity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PhysicalActivity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LifestyleModification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any bodily activity that enhances or maintains physical fitness and overall health and wellness. Includes activity that is part of daily living and routine, structured exercise, and exercise prescribed as part of a medical treatment or recovery plan.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'epidemiology' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'pathophysiology' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PhysicalActivityTrait; + use LifestyleModificationTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PhysicalActivity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PhysicalActivity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LifestyleModification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any bodily activity that enhances or maintains physical fitness and overall health and wellness. Includes activity that is part of daily living and routine, structured exercise, and exercise prescribed as part of a medical treatment or recovery plan.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'epidemiology' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'pathophysiology' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PhysicalActivityCategory.php b/src/models/jsonld/PhysicalActivityCategory.php index 67dffb715..c5c22eb4b 100644 --- a/src/models/jsonld/PhysicalActivityCategory.php +++ b/src/models/jsonld/PhysicalActivityCategory.php @@ -23,125 +23,125 @@ */ class PhysicalActivityCategory extends MetaJsonLd implements PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PhysicalActivityCategory'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Categories of physical activity, organized by physiologic classification.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PhysicalActivityCategory'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Categories of physical activity, organized by physiologic classification.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PhysicalExam.php b/src/models/jsonld/PhysicalExam.php index e3a987a9c..09dc55786 100644 --- a/src/models/jsonld/PhysicalExam.php +++ b/src/models/jsonld/PhysicalExam.php @@ -23,156 +23,156 @@ */ class PhysicalExam extends MetaJsonLd implements PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PhysicalExam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PhysicalExam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of physical examination of a patient performed by a physician. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PhysicalExam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PhysicalExam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of physical examination of a patient performed by a physician. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PhysicalTherapy.php b/src/models/jsonld/PhysicalTherapy.php index 35980cf82..817633817 100644 --- a/src/models/jsonld/PhysicalTherapy.php +++ b/src/models/jsonld/PhysicalTherapy.php @@ -24,165 +24,165 @@ */ class PhysicalTherapy extends MetaJsonLd implements PhysicalTherapyInterface, MedicalTherapyInterface, TherapeuticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use PhysicalTherapyTrait; - use MedicalTherapyTrait; - use TherapeuticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PhysicalTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PhysicalTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A process of progressive physical care and rehabilitation aimed at improving a health condition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'contraindication' => ['Text', 'MedicalContraindication'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'duplicateTherapy' => ['MedicalTherapy'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'seriousAdverseOutcome' => ['MedicalEntity'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'contraindication' => 'A contraindication for this therapy.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PhysicalTherapyTrait; + use MedicalTherapyTrait; + use TherapeuticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PhysicalTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PhysicalTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A process of progressive physical care and rehabilitation aimed at improving a health condition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'contraindication' => ['Text', 'MedicalContraindication'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'duplicateTherapy' => ['MedicalTherapy'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'seriousAdverseOutcome' => ['MedicalEntity'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'contraindication' => 'A contraindication for this therapy.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Physician.php b/src/models/jsonld/Physician.php index fcabaa71d..e5d46752e 100644 --- a/src/models/jsonld/Physician.php +++ b/src/models/jsonld/Physician.php @@ -23,342 +23,342 @@ */ class Physician extends MetaJsonLd implements PhysicianInterface, MedicalOrganizationInterface, OrganizationInterface, ThingInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface { - use PhysicianTrait; - use MedicalOrganizationTrait; - use OrganizationTrait; - use ThingTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; + use PhysicianTrait; + use MedicalOrganizationTrait; + use OrganizationTrait; + use ThingTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Physician'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Physician'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Physician'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Physician'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A doctor\'s office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A doctor\'s office.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'hospitalAffiliation' => ['Hospital'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'availableService' => ['MedicalTherapy', 'MedicalTest', 'MedicalProcedure'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'hospitalAffiliation' => ['Hospital'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'availableService' => 'A medical service available from this provider.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - 'hospitalAffiliation' => 'A hospital with which the physician or office is affiliated.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'availableService' => 'A medical service available from this provider.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + 'hospitalAffiliation' => 'A hospital with which the physician or office is affiliated.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Physiotherapy.php b/src/models/jsonld/Physiotherapy.php index e6a717da0..e37eb6058 100644 --- a/src/models/jsonld/Physiotherapy.php +++ b/src/models/jsonld/Physiotherapy.php @@ -25,338 +25,338 @@ */ class Physiotherapy extends MetaJsonLd implements PhysiotherapyInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use PhysiotherapyTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use PhysiotherapyTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Physiotherapy'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Physiotherapy'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Physiotherapy'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Physiotherapy'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The practice of treatment of disease, injury, or deformity by physical methods such as massage, heat treatment, and exercise rather than by drugs or surgery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The practice of treatment of disease, injury, or deformity by physical methods such as massage, heat treatment, and exercise rather than by drugs or surgery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Place.php b/src/models/jsonld/Place.php index ba1fe3196..19c293d2d 100644 --- a/src/models/jsonld/Place.php +++ b/src/models/jsonld/Place.php @@ -23,211 +23,211 @@ */ class Place extends MetaJsonLd implements PlaceInterface, ThingInterface { - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Place'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Place'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Entities that have a somewhat fixed, physical extension.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Place'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Place'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Entities that have a somewhat fixed, physical extension.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PlaceOfWorship.php b/src/models/jsonld/PlaceOfWorship.php index bd466e0e4..dbb2ae084 100644 --- a/src/models/jsonld/PlaceOfWorship.php +++ b/src/models/jsonld/PlaceOfWorship.php @@ -23,215 +23,215 @@ */ class PlaceOfWorship extends MetaJsonLd implements PlaceOfWorshipInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use PlaceOfWorshipTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PlaceOfWorship'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PlaceOfWorship'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Place of worship, such as a church, synagogue, or mosque.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PlaceOfWorshipTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PlaceOfWorship'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PlaceOfWorship'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Place of worship, such as a church, synagogue, or mosque.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PlaceboControlledTrial.php b/src/models/jsonld/PlaceboControlledTrial.php index 287a00202..95e013084 100644 --- a/src/models/jsonld/PlaceboControlledTrial.php +++ b/src/models/jsonld/PlaceboControlledTrial.php @@ -23,127 +23,127 @@ */ class PlaceboControlledTrial extends MetaJsonLd implements PlaceboControlledTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PlaceboControlledTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PlaceboControlledTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PlaceboControlledTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A placebo-controlled trial design.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PlaceboControlledTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PlaceboControlledTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PlaceboControlledTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A placebo-controlled trial design.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PlanAction.php b/src/models/jsonld/PlanAction.php index ba6bef22e..858d3dc74 100644 --- a/src/models/jsonld/PlanAction.php +++ b/src/models/jsonld/PlanAction.php @@ -24,149 +24,149 @@ */ class PlanAction extends MetaJsonLd implements PlanActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use PlanActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PlanAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PlanAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OrganizeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of planning the execution of an event/task/action/reservation/plan to a future date.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'scheduledTime' => ['DateTime'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'scheduledTime' => 'The time the object is scheduled to.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PlanActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PlanAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PlanAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OrganizeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of planning the execution of an event/task/action/reservation/plan to a future date.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'scheduledTime' => ['DateTime'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'scheduledTime' => 'The time the object is scheduled to.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PlasticSurgery.php b/src/models/jsonld/PlasticSurgery.php index 9435eeb0c..6d6d92b4e 100644 --- a/src/models/jsonld/PlasticSurgery.php +++ b/src/models/jsonld/PlasticSurgery.php @@ -25,338 +25,338 @@ */ class PlasticSurgery extends MetaJsonLd implements PlasticSurgeryInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use PlasticSurgeryTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use PlasticSurgeryTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PlasticSurgery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PlasticSurgery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PlasticSurgery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PlasticSurgery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to therapeutic or cosmetic repair or re-formation of missing, injured or malformed tissues or body parts by manual and instrumental means.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to therapeutic or cosmetic repair or re-formation of missing, injured or malformed tissues or body parts by manual and instrumental means.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Play.php b/src/models/jsonld/Play.php index cea3da902..5e7bfee64 100644 --- a/src/models/jsonld/Play.php +++ b/src/models/jsonld/Play.php @@ -26,346 +26,346 @@ */ class Play extends MetaJsonLd implements PlayInterface, CreativeWorkInterface, ThingInterface { - use PlayTrait; - use CreativeWorkTrait; - use ThingTrait; + use PlayTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Play'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Play'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Play'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Play'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A play is a form of literature, usually consisting of dialogue between characters, intended for theatrical performance rather than just reading. Note: A performance of a Play would be a [[TheaterEvent]] or [[BroadcastEvent]] - the *Play* being the [[workPerformed]].'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A play is a form of literature, usually consisting of dialogue between characters, intended for theatrical performance rather than just reading. Note: A performance of a Play would be a [[TheaterEvent]] or [[BroadcastEvent]] - the *Play* being the [[workPerformed]].'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PlayAction.php b/src/models/jsonld/PlayAction.php index 688b0ab6e..e80b43887 100644 --- a/src/models/jsonld/PlayAction.php +++ b/src/models/jsonld/PlayAction.php @@ -29,150 +29,150 @@ */ class PlayAction extends MetaJsonLd implements PlayActionInterface, ActionInterface, ThingInterface { - use PlayActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PlayAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PlayAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of playing/exercising/training/performing for enjoyment, leisure, recreation, competition or exercise.\n\nRelated actions:\n\n* [[ListenAction]]: Unlike ListenAction (which is under ConsumeAction), PlayAction refers to performing for an audience or at an event, rather than consuming music.\n* [[WatchAction]]: Unlike WatchAction (which is under ConsumeAction), PlayAction refers to showing/displaying for an audience or at an event, rather than consuming visual content.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'audience' => ['Audience'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PlayActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PlayAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PlayAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of playing/exercising/training/performing for enjoyment, leisure, recreation, competition or exercise.\n\nRelated actions:\n\n* [[ListenAction]]: Unlike ListenAction (which is under ConsumeAction), PlayAction refers to performing for an audience or at an event, rather than consuming music.\n* [[WatchAction]]: Unlike WatchAction (which is under ConsumeAction), PlayAction refers to showing/displaying for an audience or at an event, rather than consuming visual content.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'audience' => ['Audience'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PlayGameAction.php b/src/models/jsonld/PlayGameAction.php index ce827c2ba..46272e1d6 100644 --- a/src/models/jsonld/PlayGameAction.php +++ b/src/models/jsonld/PlayGameAction.php @@ -23,153 +23,153 @@ */ class PlayGameAction extends MetaJsonLd implements PlayGameActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use PlayGameActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PlayGameAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PlayGameAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of playing a video game.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'gameAvailabilityType' => ['Text', 'GameAvailabilityEnumeration'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - 'gameAvailabilityType' => 'Indicates the availability type of the game content associated with this action, such as whether it is a full version or a demo.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PlayGameActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PlayGameAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PlayGameAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of playing a video game.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'gameAvailabilityType' => ['Text', 'GameAvailabilityEnumeration'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + 'gameAvailabilityType' => 'Indicates the availability type of the game content associated with this action, such as whether it is a full version or a demo.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Playground.php b/src/models/jsonld/Playground.php index 0ff9c1f09..a6e0651bf 100644 --- a/src/models/jsonld/Playground.php +++ b/src/models/jsonld/Playground.php @@ -23,215 +23,215 @@ */ class Playground extends MetaJsonLd implements PlaygroundInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use PlaygroundTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Playground'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Playground'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A playground.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PlaygroundTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Playground'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Playground'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A playground.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Plumber.php b/src/models/jsonld/Plumber.php index e4bb576db..4fdcbfe51 100644 --- a/src/models/jsonld/Plumber.php +++ b/src/models/jsonld/Plumber.php @@ -23,331 +23,331 @@ */ class Plumber extends MetaJsonLd implements PlumberInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use PlumberTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use PlumberTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Plumber'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Plumber'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Plumber'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Plumber'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A plumbing service.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A plumbing service.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PodcastEpisode.php b/src/models/jsonld/PodcastEpisode.php index edd3b64a2..faeb194c4 100644 --- a/src/models/jsonld/PodcastEpisode.php +++ b/src/models/jsonld/PodcastEpisode.php @@ -23,369 +23,369 @@ */ class PodcastEpisode extends MetaJsonLd implements PodcastEpisodeInterface, EpisodeInterface, CreativeWorkInterface, ThingInterface { - use PodcastEpisodeTrait; - use EpisodeTrait; - use CreativeWorkTrait; - use ThingTrait; + use PodcastEpisodeTrait; + use EpisodeTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PodcastEpisode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PodcastEpisode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PodcastEpisode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PodcastEpisode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Episode'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Episode'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A single episode of a podcast series.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A single episode of a podcast series.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'episodeNumber' => ['Text', 'Integer'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'episodeNumber' => ['Text', 'Integer'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PodcastSeason.php b/src/models/jsonld/PodcastSeason.php index 01921aa62..0f498ceb2 100644 --- a/src/models/jsonld/PodcastSeason.php +++ b/src/models/jsonld/PodcastSeason.php @@ -24,369 +24,369 @@ */ class PodcastSeason extends MetaJsonLd implements PodcastSeasonInterface, CreativeWorkSeasonInterface, CreativeWorkInterface, ThingInterface { - use PodcastSeasonTrait; - use CreativeWorkSeasonTrait; - use CreativeWorkTrait; - use ThingTrait; + use PodcastSeasonTrait; + use CreativeWorkSeasonTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PodcastSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PodcastSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PodcastSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PodcastSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeason'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeason'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A single season of a podcast. Many podcasts do not break down into separate seasons. In that case, PodcastSeries should be used.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A single season of a podcast. Many podcasts do not break down into separate seasons. In that case, PodcastSeries should be used.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'episode' => ['Episode'], - 'episodes' => ['Episode'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfEpisodes' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'seasonNumber' => ['Text', 'Integer'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'episode' => ['Episode'], + 'episodes' => ['Episode'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfEpisodes' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'seasonNumber' => ['Text', 'Integer'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'episode' => 'An episode of a TV, radio or game media within a series or season.', - 'episodes' => 'An episode of a TV/radio series or season.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfEpisodes' => 'The number of episodes in this season or series.', - '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. ', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'seasonNumber' => 'Position of the season within an ordered group of seasons.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'episode' => 'An episode of a TV, radio or game media within a series or season.', + 'episodes' => 'An episode of a TV/radio series or season.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfEpisodes' => 'The number of episodes in this season or series.', + '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. ', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'seasonNumber' => 'Position of the season within an ordered group of seasons.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PodcastSeries.php b/src/models/jsonld/PodcastSeries.php index 17830685d..8fe802528 100644 --- a/src/models/jsonld/PodcastSeries.php +++ b/src/models/jsonld/PodcastSeries.php @@ -24,359 +24,359 @@ */ class PodcastSeries extends MetaJsonLd implements PodcastSeriesInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use PodcastSeriesTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use PodcastSeriesTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PodcastSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PodcastSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PodcastSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PodcastSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A podcast is an episodic series of digital audio or video files which a user can download and listen to.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A podcast is an episodic series of digital audio or video files which a user can download and listen to.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'webFeed' => ['DataFeed', 'URL'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'webFeed' => ['DataFeed', 'URL'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'webFeed' => 'The URL for a feed, e.g. associated with a podcast series, blog, or series of date-stamped updates. This is usually RSS or Atom.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'webFeed' => 'The URL for a feed, e.g. associated with a podcast series, blog, or series of date-stamped updates. This is usually RSS or Atom.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Podiatric.php b/src/models/jsonld/Podiatric.php index ceb24a9c0..5395b1a5a 100644 --- a/src/models/jsonld/Podiatric.php +++ b/src/models/jsonld/Podiatric.php @@ -24,338 +24,338 @@ */ class Podiatric extends MetaJsonLd implements PodiatricInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use PodiatricTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use PodiatricTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Podiatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Podiatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Podiatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Podiatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Podiatry is the care of the human foot, especially the diagnosis and treatment of foot disorders.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Podiatry is the care of the human foot, especially the diagnosis and treatment of foot disorders.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PoliceStation.php b/src/models/jsonld/PoliceStation.php index 7d744caca..c3eeb90ca 100644 --- a/src/models/jsonld/PoliceStation.php +++ b/src/models/jsonld/PoliceStation.php @@ -23,332 +23,332 @@ */ class PoliceStation extends MetaJsonLd implements PoliceStationInterface, EmergencyServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, CivicStructureInterface { - use PoliceStationTrait; - use EmergencyServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use CivicStructureTrait; + use PoliceStationTrait; + use EmergencyServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use CivicStructureTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PoliceStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PoliceStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PoliceStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PoliceStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EmergencyService'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EmergencyService'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A police station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A police station.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Pond.php b/src/models/jsonld/Pond.php index 258df66f7..d0190e25c 100644 --- a/src/models/jsonld/Pond.php +++ b/src/models/jsonld/Pond.php @@ -23,214 +23,214 @@ */ class Pond extends MetaJsonLd implements PondInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use PondTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Pond'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Pond'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A pond.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PondTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Pond'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Pond'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A pond.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PostOffice.php b/src/models/jsonld/PostOffice.php index ffc465bc9..fd50ffbf5 100644 --- a/src/models/jsonld/PostOffice.php +++ b/src/models/jsonld/PostOffice.php @@ -23,331 +23,331 @@ */ class PostOffice extends MetaJsonLd implements PostOfficeInterface, GovernmentOfficeInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use PostOfficeTrait; - use GovernmentOfficeTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use PostOfficeTrait; + use GovernmentOfficeTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PostOffice'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PostOffice'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PostOffice'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PostOffice'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentOffice'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentOffice'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A post office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A post office.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PostalAddress.php b/src/models/jsonld/PostalAddress.php index d341999f6..dbfddf4e9 100644 --- a/src/models/jsonld/PostalAddress.php +++ b/src/models/jsonld/PostalAddress.php @@ -23,156 +23,156 @@ */ class PostalAddress extends MetaJsonLd implements PostalAddressInterface, ContactPointInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use PostalAddressTrait; - use ContactPointTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PostalAddress'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PostalAddress'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ContactPoint'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The mailing address.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'addressCountry' => ['Country', 'Text'], - 'addressLocality' => ['Text'], - 'addressRegion' => ['Text'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'availableLanguage' => ['Text', 'Language'], - 'contactOption' => ['ContactPointOption'], - 'contactType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'email' => ['Text'], - 'faxNumber' => ['Text'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'postOfficeBoxNumber' => ['Text'], - 'postalCode' => ['Text'], - 'potentialAction' => ['Action'], - 'productSupported' => ['Text', 'Product'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'streetAddress' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', - 'addressLocality' => 'The locality in which the street address is, and which is in the region. For example, Mountain View.', - 'addressRegion' => 'The region in which the locality is, and which is in the country. For example, California or another appropriate first-level [Administrative division](https://en.wikipedia.org/wiki/List_of_administrative_divisions_by_country).', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'contactOption' => 'An option available on this contact point (e.g. a toll-free number or support for hearing-impaired callers).', - 'contactType' => 'A person or organization can have different contact points, for different purposes. For example, a sales contact point, a PR contact point and so on. This property is used to specify the kind of contact point.', - 'description' => 'A description of the item.', - '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.', - 'email' => 'Email address.', - 'faxNumber' => 'The fax number.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'postOfficeBoxNumber' => 'The post office box number for PO box addresses.', - 'postalCode' => 'The postal code. For example, 94043.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productSupported' => 'The product or service this support contact point is related to (such as product support for a particular product line). This can be a specific product or product line (e.g. "iPhone") or a general category of products or services (e.g. "smartphones").', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'streetAddress' => 'The street address. For example, 1600 Amphitheatre Pkwy.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PostalAddressTrait; + use ContactPointTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PostalAddress'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PostalAddress'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ContactPoint'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The mailing address.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'addressCountry' => ['Country', 'Text'], + 'addressLocality' => ['Text'], + 'addressRegion' => ['Text'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'availableLanguage' => ['Text', 'Language'], + 'contactOption' => ['ContactPointOption'], + 'contactType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'email' => ['Text'], + 'faxNumber' => ['Text'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'postOfficeBoxNumber' => ['Text'], + 'postalCode' => ['Text'], + 'potentialAction' => ['Action'], + 'productSupported' => ['Text', 'Product'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'streetAddress' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'addressCountry' => 'The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).', + 'addressLocality' => 'The locality in which the street address is, and which is in the region. For example, Mountain View.', + 'addressRegion' => 'The region in which the locality is, and which is in the country. For example, California or another appropriate first-level [Administrative division](https://en.wikipedia.org/wiki/List_of_administrative_divisions_by_country).', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'contactOption' => 'An option available on this contact point (e.g. a toll-free number or support for hearing-impaired callers).', + 'contactType' => 'A person or organization can have different contact points, for different purposes. For example, a sales contact point, a PR contact point and so on. This property is used to specify the kind of contact point.', + 'description' => 'A description of the item.', + '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.', + 'email' => 'Email address.', + 'faxNumber' => 'The fax number.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'postOfficeBoxNumber' => 'The post office box number for PO box addresses.', + 'postalCode' => 'The postal code. For example, 94043.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productSupported' => 'The product or service this support contact point is related to (such as product support for a particular product line). This can be a specific product or product line (e.g. "iPhone") or a general category of products or services (e.g. "smartphones").', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'streetAddress' => 'The street address. For example, 1600 Amphitheatre Pkwy.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PostalCodeRangeSpecification.php b/src/models/jsonld/PostalCodeRangeSpecification.php index 714d86500..744afabaf 100644 --- a/src/models/jsonld/PostalCodeRangeSpecification.php +++ b/src/models/jsonld/PostalCodeRangeSpecification.php @@ -24,127 +24,127 @@ */ class PostalCodeRangeSpecification extends MetaJsonLd implements PostalCodeRangeSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use PostalCodeRangeSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PostalCodeRangeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PostalCodeRangeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates a range of postal codes, usually defined as the set of valid codes between [[postalCodeBegin]] and [[postalCodeEnd]], inclusively.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'postalCodeBegin' => ['Text'], - 'postalCodeEnd' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'postalCodeBegin' => 'First postal code in a range (included).', - 'postalCodeEnd' => 'Last postal code in the range (included). Needs to be after [[postalCodeBegin]].', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PostalCodeRangeSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PostalCodeRangeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PostalCodeRangeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates a range of postal codes, usually defined as the set of valid codes between [[postalCodeBegin]] and [[postalCodeEnd]], inclusively.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'postalCodeBegin' => ['Text'], + 'postalCodeEnd' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'postalCodeBegin' => 'First postal code in a range (included).', + 'postalCodeEnd' => 'Last postal code in the range (included). Needs to be after [[postalCodeBegin]].', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Poster.php b/src/models/jsonld/Poster.php index 566c699a2..9212392a4 100644 --- a/src/models/jsonld/Poster.php +++ b/src/models/jsonld/Poster.php @@ -24,346 +24,346 @@ */ class Poster extends MetaJsonLd implements PosterInterface, CreativeWorkInterface, ThingInterface { - use PosterTrait; - use CreativeWorkTrait; - use ThingTrait; + use PosterTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Poster'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Poster'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Poster'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Poster'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A large, usually printed placard, bill, or announcement, often illustrated, that is posted to advertise or publicize something.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A large, usually printed placard, bill, or announcement, often illustrated, that is posted to advertise or publicize something.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PotentialActionStatus.php b/src/models/jsonld/PotentialActionStatus.php index 314ed368b..10046a822 100644 --- a/src/models/jsonld/PotentialActionStatus.php +++ b/src/models/jsonld/PotentialActionStatus.php @@ -23,127 +23,127 @@ */ class PotentialActionStatus extends MetaJsonLd implements PotentialActionStatusInterface, ActionStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PotentialActionStatusTrait; - use ActionStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PotentialActionStatus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PotentialActionStatus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ActionStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A description of an action that is supported.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PotentialActionStatusTrait; + use ActionStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PotentialActionStatus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PotentialActionStatus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ActionStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A description of an action that is supported.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PreOrder.php b/src/models/jsonld/PreOrder.php index a2705b5d3..a669350c9 100644 --- a/src/models/jsonld/PreOrder.php +++ b/src/models/jsonld/PreOrder.php @@ -23,126 +23,126 @@ */ class PreOrder extends MetaJsonLd implements PreOrderInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PreOrderTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PreOrder'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PreOrder'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is available for pre-order.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PreOrderTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PreOrder'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PreOrder'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is available for pre-order.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PreOrderAction.php b/src/models/jsonld/PreOrderAction.php index 7d5821fd7..e3f06179e 100644 --- a/src/models/jsonld/PreOrderAction.php +++ b/src/models/jsonld/PreOrderAction.php @@ -24,153 +24,153 @@ */ class PreOrderAction extends MetaJsonLd implements PreOrderActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use PreOrderActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PreOrderAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PreOrderAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent orders a (not yet released) object/product/service to be delivered/sent.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PreOrderActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PreOrderAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PreOrderAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent orders a (not yet released) object/product/service to be delivered/sent.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PreSale.php b/src/models/jsonld/PreSale.php index 52352562b..038aacf23 100644 --- a/src/models/jsonld/PreSale.php +++ b/src/models/jsonld/PreSale.php @@ -24,126 +24,126 @@ */ class PreSale extends MetaJsonLd implements PreSaleInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PreSaleTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PreSale'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PreSale'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is available for ordering and delivery before general availability.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PreSaleTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PreSale'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PreSale'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is available for ordering and delivery before general availability.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PregnancyHealthAspect.php b/src/models/jsonld/PregnancyHealthAspect.php index 430ca9206..8bed66cff 100644 --- a/src/models/jsonld/PregnancyHealthAspect.php +++ b/src/models/jsonld/PregnancyHealthAspect.php @@ -23,126 +23,126 @@ */ class PregnancyHealthAspect extends MetaJsonLd implements PregnancyHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PregnancyHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PregnancyHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PregnancyHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content discussing pregnancy-related aspects of a health topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PregnancyHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PregnancyHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PregnancyHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content discussing pregnancy-related aspects of a health topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PrependAction.php b/src/models/jsonld/PrependAction.php index 5229bb932..4518de8e7 100644 --- a/src/models/jsonld/PrependAction.php +++ b/src/models/jsonld/PrependAction.php @@ -23,155 +23,155 @@ */ class PrependAction extends MetaJsonLd implements PrependActionInterface, InsertActionInterface, AddActionInterface, UpdateActionInterface, ActionInterface, ThingInterface { - use PrependActionTrait; - use InsertActionTrait; - use AddActionTrait; - use UpdateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PrependAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PrependAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InsertAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of inserting at the beginning if an ordered collection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'collection' => ['Thing'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'targetCollection' => ['Thing'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'collection' => 'A sub property of object. The collection target of the action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'targetCollection' => 'A sub property of object. The collection target of the action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PrependActionTrait; + use InsertActionTrait; + use AddActionTrait; + use UpdateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PrependAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PrependAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InsertAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of inserting at the beginning if an ordered collection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'collection' => ['Thing'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'targetCollection' => ['Thing'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'collection' => 'A sub property of object. The collection target of the action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'targetCollection' => 'A sub property of object. The collection target of the action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Preschool.php b/src/models/jsonld/Preschool.php index dc3d27212..b9a8d9793 100644 --- a/src/models/jsonld/Preschool.php +++ b/src/models/jsonld/Preschool.php @@ -23,323 +23,323 @@ */ class Preschool extends MetaJsonLd implements PreschoolInterface, EducationalOrganizationInterface, CivicStructureInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use PreschoolTrait; - use EducationalOrganizationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use PreschoolTrait; + use EducationalOrganizationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Preschool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Preschool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Preschool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Preschool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A preschool.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A preschool.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PrescriptionOnly.php b/src/models/jsonld/PrescriptionOnly.php index bece66b57..c3e43a83d 100644 --- a/src/models/jsonld/PrescriptionOnly.php +++ b/src/models/jsonld/PrescriptionOnly.php @@ -23,127 +23,127 @@ */ class PrescriptionOnly extends MetaJsonLd implements PrescriptionOnlyInterface, DrugPrescriptionStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PrescriptionOnlyTrait; - use DrugPrescriptionStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PrescriptionOnly'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PrescriptionOnly'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugPrescriptionStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Available by prescription only.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PrescriptionOnlyTrait; + use DrugPrescriptionStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PrescriptionOnly'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PrescriptionOnly'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugPrescriptionStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Available by prescription only.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PresentationDigitalDocument.php b/src/models/jsonld/PresentationDigitalDocument.php index 05fdfc134..96a106cfc 100644 --- a/src/models/jsonld/PresentationDigitalDocument.php +++ b/src/models/jsonld/PresentationDigitalDocument.php @@ -23,349 +23,349 @@ */ class PresentationDigitalDocument extends MetaJsonLd implements PresentationDigitalDocumentInterface, DigitalDocumentInterface, CreativeWorkInterface, ThingInterface { - use PresentationDigitalDocumentTrait; - use DigitalDocumentTrait; - use CreativeWorkTrait; - use ThingTrait; + use PresentationDigitalDocumentTrait; + use DigitalDocumentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PresentationDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PresentationDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PresentationDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PresentationDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A file containing slides or used for a presentation.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A file containing slides or used for a presentation.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PreventionHealthAspect.php b/src/models/jsonld/PreventionHealthAspect.php index 14d589a75..19e1e61c9 100644 --- a/src/models/jsonld/PreventionHealthAspect.php +++ b/src/models/jsonld/PreventionHealthAspect.php @@ -24,126 +24,126 @@ */ class PreventionHealthAspect extends MetaJsonLd implements PreventionHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PreventionHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PreventionHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PreventionHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Information about actions or measures that can be taken to avoid getting the topic or reaching a critical situation related to the topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PreventionHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PreventionHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PreventionHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Information about actions or measures that can be taken to avoid getting the topic or reaching a critical situation related to the topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PreventionIndication.php b/src/models/jsonld/PreventionIndication.php index cbf3a2d0f..33bee4775 100644 --- a/src/models/jsonld/PreventionIndication.php +++ b/src/models/jsonld/PreventionIndication.php @@ -23,139 +23,139 @@ */ class PreventionIndication extends MetaJsonLd implements PreventionIndicationInterface, MedicalIndicationInterface, MedicalEntityInterface, ThingInterface { - use PreventionIndicationTrait; - use MedicalIndicationTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PreventionIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PreventionIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIndication'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An indication for preventing an underlying condition, symptom, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PreventionIndicationTrait; + use MedicalIndicationTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PreventionIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PreventionIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIndication'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An indication for preventing an underlying condition, symptom, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PriceComponentTypeEnumeration.php b/src/models/jsonld/PriceComponentTypeEnumeration.php index 69407b1fa..1cb848f15 100644 --- a/src/models/jsonld/PriceComponentTypeEnumeration.php +++ b/src/models/jsonld/PriceComponentTypeEnumeration.php @@ -24,125 +24,125 @@ */ class PriceComponentTypeEnumeration extends MetaJsonLd implements PriceComponentTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PriceComponentTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates different price components that together make up the total price for an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PriceComponentTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates different price components that together make up the total price for an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PriceSpecification.php b/src/models/jsonld/PriceSpecification.php index 3b9614c03..9173f8773 100644 --- a/src/models/jsonld/PriceSpecification.php +++ b/src/models/jsonld/PriceSpecification.php @@ -26,141 +26,141 @@ */ class PriceSpecification extends MetaJsonLd implements PriceSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use PriceSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PriceSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PriceSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A structured value representing a price or price range. Typically, only the subclasses of this type are used for markup. It is recommended to use [[MonetaryAmount]] to describe independent amounts of money such as a salary, credit card limits, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxPrice' => ['Number'], - 'minPrice' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'valueAddedTaxIncluded' => ['Boolean'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxPrice' => 'The highest price if the price is a range.', - 'minPrice' => 'The lowest price if the price is a range.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PriceSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PriceSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PriceSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A structured value representing a price or price range. Typically, only the subclasses of this type are used for markup. It is recommended to use [[MonetaryAmount]] to describe independent amounts of money such as a salary, credit card limits, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxPrice' => ['Number'], + 'minPrice' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'valueAddedTaxIncluded' => ['Boolean'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxPrice' => 'The highest price if the price is a range.', + 'minPrice' => 'The lowest price if the price is a range.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PriceTypeEnumeration.php b/src/models/jsonld/PriceTypeEnumeration.php index d9b346226..f1edc12e4 100644 --- a/src/models/jsonld/PriceTypeEnumeration.php +++ b/src/models/jsonld/PriceTypeEnumeration.php @@ -24,125 +24,125 @@ */ class PriceTypeEnumeration extends MetaJsonLd implements PriceTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PriceTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PriceTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates different price types, for example list price, invoice price, and sale price.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PriceTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PriceTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates different price types, for example list price, invoice price, and sale price.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PrimaryCare.php b/src/models/jsonld/PrimaryCare.php index 0a013603e..d27ea731d 100644 --- a/src/models/jsonld/PrimaryCare.php +++ b/src/models/jsonld/PrimaryCare.php @@ -25,338 +25,338 @@ */ class PrimaryCare extends MetaJsonLd implements PrimaryCareInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use PrimaryCareTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use PrimaryCareTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PrimaryCare'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PrimaryCare'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PrimaryCare'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PrimaryCare'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The medical care by a physician, or other health-care professional, who is the patient\'s first contact with the health-care system and who may recommend a specialist if necessary.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The medical care by a physician, or other health-care professional, who is the patient\'s first contact with the health-care system and who may recommend a specialist if necessary.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Prion.php b/src/models/jsonld/Prion.php index 5ea076163..bbdc866cb 100644 --- a/src/models/jsonld/Prion.php +++ b/src/models/jsonld/Prion.php @@ -23,127 +23,127 @@ */ class Prion extends MetaJsonLd implements PrionInterface, InfectiousAgentClassInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PrionTrait; - use InfectiousAgentClassTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Prion'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Prion'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A prion is an infectious agent composed of protein in a misfolded form.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PrionTrait; + use InfectiousAgentClassTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Prion'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Prion'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A prion is an infectious agent composed of protein in a misfolded form.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Product.php b/src/models/jsonld/Product.php index 43bc3652d..175385b6f 100644 --- a/src/models/jsonld/Product.php +++ b/src/models/jsonld/Product.php @@ -25,231 +25,231 @@ */ class Product extends MetaJsonLd implements ProductInterface, ThingInterface { - use ProductTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Product'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Product'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any offered product or service. For example: a pair of shoes; a concert ticket; the rental of a car; a haircut; or an episode of a TV show streamed online.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ProductTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Product'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Product'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any offered product or service. For example: a pair of shoes; a concert ticket; the rental of a car; a haircut; or an episode of a TV show streamed online.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ProductCollection.php b/src/models/jsonld/ProductCollection.php index 8c38ae426..dabbde2f9 100644 --- a/src/models/jsonld/ProductCollection.php +++ b/src/models/jsonld/ProductCollection.php @@ -24,434 +24,434 @@ */ class ProductCollection extends MetaJsonLd implements ProductCollectionInterface, CollectionInterface, CreativeWorkInterface, ThingInterface, ProductInterface { - use ProductCollectionTrait; - use CollectionTrait; - use CreativeWorkTrait; - use ThingTrait; - use ProductTrait; + use ProductCollectionTrait; + use CollectionTrait; + use CreativeWorkTrait; + use ThingTrait; + use ProductTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ProductCollection'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ProductCollection'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ProductCollection'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ProductCollection'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Collection'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Collection'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of products (either [[ProductGroup]]s or specific variants) that are listed together e.g. in an [[Offer]].'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of products (either [[ProductGroup]]s or specific variants) that are listed together e.g. in an [[Offer]].'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'asin' => ['Text', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'collectionSize' => ['Integer'], - 'color' => ['Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'inProductGroupWithID' => ['Text'], - 'includesObject' => ['TypeAndQuantityNode'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'purchaseDate' => ['Date'], - 'recordedAt' => ['Event'], - 'releaseDate' => ['Date'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'asin' => ['Text', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'collectionSize' => ['Integer'], + 'color' => ['Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'inProductGroupWithID' => ['Text'], + 'includesObject' => ['TypeAndQuantityNode'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'purchaseDate' => ['Date'], + 'recordedAt' => ['Event'], + 'releaseDate' => ['Date'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'collectionSize' => 'The number of items in the [[Collection]].', - 'color' => 'The color of the product.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'logo' => 'An associated logo.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'collectionSize' => 'The number of items in the [[Collection]].', + 'color' => 'The color of the product.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'includesObject' => 'This links to a node or nodes indicating the exact quantity of the products included in an [[Offer]] or [[ProductCollection]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'logo' => 'An associated logo.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ProductGroup.php b/src/models/jsonld/ProductGroup.php index b29c9ba6c..0500e3654 100644 --- a/src/models/jsonld/ProductGroup.php +++ b/src/models/jsonld/ProductGroup.php @@ -33,238 +33,238 @@ */ class ProductGroup extends MetaJsonLd implements ProductGroupInterface, ProductInterface, ThingInterface { - use ProductGroupTrait; - use ProductTrait; - use ThingTrait; + use ProductGroupTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ProductGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ProductGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ProductGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ProductGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A ProductGroup represents a group of [[Product]]s that vary only in certain well-described ways, such as by [[size]], [[color]], [[material]] etc.\n\nWhile a ProductGroup itself is not directly offered for sale, the various varying products that it represents can be. The ProductGroup serves as a prototype or template, standing in for all of the products who have an [[isVariantOf]] relationship to it. As such, properties (including additional types) can be applied to the ProductGroup to represent characteristics shared by each of the (possibly very many) variants. Properties that reference a ProductGroup are not included in this mechanism; neither are the following specific properties [[variesBy]], [[hasVariant]], [[url]]. "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A ProductGroup represents a group of [[Product]]s that vary only in certain well-described ways, such as by [[size]], [[color]], [[material]] etc.\n\nWhile a ProductGroup itself is not directly offered for sale, the various varying products that it represents can be. The ProductGroup serves as a prototype or template, standing in for all of the products who have an [[isVariantOf]] relationship to it. As such, properties (including additional types) can be applied to the ProductGroup to represent characteristics shared by each of the (possibly very many) variants. Properties that reference a ProductGroup are not included in this mechanism; neither are the following specific properties [[variesBy]], [[hasVariant]], [[url]]. "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasVariant' => ['Product'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productGroupID' => ['Text'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'variesBy' => ['Text', 'DefinedTerm'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasVariant' => ['Product'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productGroupID' => ['Text'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'variesBy' => ['Text', 'DefinedTerm'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasVariant' => 'Indicates a [[Product]] that is a member of this [[ProductGroup]] (or [[ProductModel]]).', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productGroupID' => 'Indicates a textual identifier for a ProductGroup.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'variesBy' => 'Indicates the property or properties by which the variants in a [[ProductGroup]] vary, e.g. their size, color etc. Schema.org properties can be referenced by their short name e.g. "color"; terms defined elsewhere can be referenced with their URIs.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasVariant' => 'Indicates a [[Product]] that is a member of this [[ProductGroup]] (or [[ProductModel]]).', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productGroupID' => 'Indicates a textual identifier for a ProductGroup.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'variesBy' => 'Indicates the property or properties by which the variants in a [[ProductGroup]] vary, e.g. their size, color etc. Schema.org properties can be referenced by their short name e.g. "color"; terms defined elsewhere can be referenced with their URIs.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ProductModel.php b/src/models/jsonld/ProductModel.php index e7c1c0fc4..14fd76bc0 100644 --- a/src/models/jsonld/ProductModel.php +++ b/src/models/jsonld/ProductModel.php @@ -24,236 +24,236 @@ */ class ProductModel extends MetaJsonLd implements ProductModelInterface, ProductInterface, ThingInterface { - use ProductModelTrait; - use ProductTrait; - use ThingTrait; + use ProductModelTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ProductModel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ProductModel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ProductModel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ProductModel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A datasheet or vendor specification of a product (in the sense of a prototypical description).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A datasheet or vendor specification of a product (in the sense of a prototypical description).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'predecessorOf' => ['ProductModel'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'successorOf' => ['ProductModel'], - 'url' => ['URL'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'predecessorOf' => ['ProductModel'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'successorOf' => ['ProductModel'], + 'url' => ['URL'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'predecessorOf' => 'A pointer from a previous, often discontinued variant of the product to its newer variant.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'successorOf' => 'A pointer from a newer variant of a product to its previous, often discontinued predecessor.', - 'url' => 'URL of the item.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'predecessorOf' => 'A pointer from a previous, often discontinued variant of the product to its newer variant.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'successorOf' => 'A pointer from a newer variant of a product to its previous, often discontinued predecessor.', + 'url' => 'URL of the item.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ProfessionalService.php b/src/models/jsonld/ProfessionalService.php index 1566373cb..1afae2d12 100644 --- a/src/models/jsonld/ProfessionalService.php +++ b/src/models/jsonld/ProfessionalService.php @@ -30,330 +30,330 @@ */ class ProfessionalService extends MetaJsonLd implements ProfessionalServiceInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ProfessionalServiceTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ProfessionalServiceTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ProfessionalService'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ProfessionalService'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ProfessionalService'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ProfessionalService'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Original definition: \"provider of professional services.\"\\n\\nThe general [[ProfessionalService]] type for local businesses was deprecated due to confusion with [[Service]]. For reference, the types that it included were: [[Dentist]],\n [[AccountingService]], [[Attorney]], [[Notary]], as well as types for several kinds of [[HomeAndConstructionBusiness]]: [[Electrician]], [[GeneralContractor]],\n [[HousePainter]], [[Locksmith]], [[Plumber]], [[RoofingContractor]]. [[LegalService]] was introduced as a more inclusive supertype of [[Attorney]]."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Original definition: \"provider of professional services.\"\\n\\nThe general [[ProfessionalService]] type for local businesses was deprecated due to confusion with [[Service]]. For reference, the types that it included were: [[Dentist]],\n [[AccountingService]], [[Attorney]], [[Notary]], as well as types for several kinds of [[HomeAndConstructionBusiness]]: [[Electrician]], [[GeneralContractor]],\n [[HousePainter]], [[Locksmith]], [[Plumber]], [[RoofingContractor]]. [[LegalService]] was introduced as a more inclusive supertype of [[Attorney]]."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ProfilePage.php b/src/models/jsonld/ProfilePage.php index 1c51c0baa..44cbce7b5 100644 --- a/src/models/jsonld/ProfilePage.php +++ b/src/models/jsonld/ProfilePage.php @@ -23,367 +23,367 @@ */ class ProfilePage extends MetaJsonLd implements ProfilePageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use ProfilePageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use ProfilePageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ProfilePage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ProfilePage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ProfilePage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ProfilePage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Profile page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Profile page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PrognosisHealthAspect.php b/src/models/jsonld/PrognosisHealthAspect.php index 211e721d5..ae039c29f 100644 --- a/src/models/jsonld/PrognosisHealthAspect.php +++ b/src/models/jsonld/PrognosisHealthAspect.php @@ -23,126 +23,126 @@ */ class PrognosisHealthAspect extends MetaJsonLd implements PrognosisHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PrognosisHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PrognosisHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PrognosisHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Typical progression and happenings of life course of the topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PrognosisHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PrognosisHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PrognosisHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Typical progression and happenings of life course of the topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ProgramMembership.php b/src/models/jsonld/ProgramMembership.php index 6cec8f4c7..aa58c2b60 100644 --- a/src/models/jsonld/ProgramMembership.php +++ b/src/models/jsonld/ProgramMembership.php @@ -24,134 +24,134 @@ */ class ProgramMembership extends MetaJsonLd implements ProgramMembershipInterface, IntangibleInterface, ThingInterface { - use ProgramMembershipTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ProgramMembership'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ProgramMembership'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Used to describe membership in a loyalty programs (e.g. "StarAliance"), traveler clubs (e.g. "AAA"), purchase clubs ("Safeway Club"), etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hostingOrganization' => ['Organization'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'member' => ['Organization', 'Person'], - 'members' => ['Organization', 'Person'], - 'membershipNumber' => ['Text'], - 'membershipPointsEarned' => ['Number', 'QuantitativeValue'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'programName' => ['Text'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'hostingOrganization' => 'The organization (airline, travelers\' club, etc.) the membership is made with.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'members' => 'A member of this organization.', - 'membershipNumber' => 'A unique identifier for the membership.', - 'membershipPointsEarned' => 'The number of membership points earned by the member. If necessary, the unitText can be used to express the units the points are issued in. (E.g. stars, miles, etc.)', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'programName' => 'The program providing the membership.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ProgramMembershipTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ProgramMembership'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ProgramMembership'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Used to describe membership in a loyalty programs (e.g. "StarAliance"), traveler clubs (e.g. "AAA"), purchase clubs ("Safeway Club"), etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hostingOrganization' => ['Organization'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'member' => ['Organization', 'Person'], + 'members' => ['Organization', 'Person'], + 'membershipNumber' => ['Text'], + 'membershipPointsEarned' => ['Number', 'QuantitativeValue'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'programName' => ['Text'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'hostingOrganization' => 'The organization (airline, travelers\' club, etc.) the membership is made with.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'members' => 'A member of this organization.', + 'membershipNumber' => 'A unique identifier for the membership.', + 'membershipPointsEarned' => 'The number of membership points earned by the member. If necessary, the unitText can be used to express the units the points are issued in. (E.g. stars, miles, etc.)', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'programName' => 'The program providing the membership.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Project.php b/src/models/jsonld/Project.php index 169b218e8..b068bda11 100644 --- a/src/models/jsonld/Project.php +++ b/src/models/jsonld/Project.php @@ -26,254 +26,254 @@ */ class Project extends MetaJsonLd implements ProjectInterface, OrganizationInterface, ThingInterface { - use ProjectTrait; - use OrganizationTrait; - use ThingTrait; + use ProjectTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Project'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Project'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Project'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Project'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim.\nUse properties from [[Organization]], [[subOrganization]]/[[parentOrganization]] to indicate project sub-structures. \n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim.\nUse properties from [[Organization]], [[subOrganization]]/[[parentOrganization]] to indicate project sub-structures. \n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PronounceableText.php b/src/models/jsonld/PronounceableText.php index c5cf6c4bf..6f5e060b0 100644 --- a/src/models/jsonld/PronounceableText.php +++ b/src/models/jsonld/PronounceableText.php @@ -23,105 +23,105 @@ */ class PronounceableText extends MetaJsonLd implements PronounceableTextInterface, TextInterface { - use PronounceableTextTrait; - use TextTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PronounceableText'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PronounceableText'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data type: PronounceableText.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'inLanguage' => ['Text', 'Language'], - 'phoneticText' => ['Text'], - 'speechToTextMarkup' => ['Text'], - 'textValue' => ['Text'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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]].', - 'phoneticText' => 'Representation of a text [[textValue]] using the specified [[speechToTextMarkup]]. For example the city name of Houston in IPA: /ˈhjuːstən/.', - 'speechToTextMarkup' => 'Form of markup used. eg. [SSML](https://www.w3.org/TR/speech-synthesis11) or [IPA](https://www.wikidata.org/wiki/Property:P898).', - 'textValue' => 'Text value being annotated.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PronounceableTextTrait; + use TextTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PronounceableText'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PronounceableText'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data type: PronounceableText.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'inLanguage' => ['Text', 'Language'], + 'phoneticText' => ['Text'], + 'speechToTextMarkup' => ['Text'], + 'textValue' => ['Text'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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]].', + 'phoneticText' => 'Representation of a text [[textValue]] using the specified [[speechToTextMarkup]]. For example the city name of Houston in IPA: /ˈhjuːstən/.', + 'speechToTextMarkup' => 'Form of markup used. eg. [SSML](https://www.w3.org/TR/speech-synthesis11) or [IPA](https://www.wikidata.org/wiki/Property:P898).', + 'textValue' => 'Text value being annotated.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Property.php b/src/models/jsonld/Property.php index 5397ff0e2..599fcb21e 100644 --- a/src/models/jsonld/Property.php +++ b/src/models/jsonld/Property.php @@ -24,130 +24,130 @@ */ class Property extends MetaJsonLd implements PropertyInterface, IntangibleInterface, ThingInterface { - use PropertyTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Property'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Property'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A property, used to indicate attributes and relationships of some Thing; equivalent to rdf:Property.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'domainIncludes' => ['Class'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inverseOf' => ['Property'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'rangeIncludes' => ['Class'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'domainIncludes' => 'Relates a property to a class that is (one of) the type(s) the property is expected to be used on.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inverseOf' => 'Relates a property to a property that is its inverse. Inverse properties relate the same pairs of items to each other, but in reversed direction. For example, the \'alumni\' and \'alumniOf\' properties are inverseOf each other. Some properties don\'t have explicit inverses; in these situations RDFa and JSON-LD syntax for reverse properties can be used.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'rangeIncludes' => 'Relates a property to a class that constitutes (one of) the expected type(s) for values of the property.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PropertyTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Property'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Property'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A property, used to indicate attributes and relationships of some Thing; equivalent to rdf:Property.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'domainIncludes' => ['Class'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inverseOf' => ['Property'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'rangeIncludes' => ['Class'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'domainIncludes' => 'Relates a property to a class that is (one of) the type(s) the property is expected to be used on.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inverseOf' => 'Relates a property to a property that is its inverse. Inverse properties relate the same pairs of items to each other, but in reversed direction. For example, the \'alumni\' and \'alumniOf\' properties are inverseOf each other. Some properties don\'t have explicit inverses; in these situations RDFa and JSON-LD syntax for reverse properties can be used.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'rangeIncludes' => 'Relates a property to a class that constitutes (one of) the expected type(s) for values of the property.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PropertyValue.php b/src/models/jsonld/PropertyValue.php index 8371b4ba7..fff2435cb 100644 --- a/src/models/jsonld/PropertyValue.php +++ b/src/models/jsonld/PropertyValue.php @@ -29,139 +29,139 @@ */ class PropertyValue extends MetaJsonLd implements PropertyValueInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use PropertyValueTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PropertyValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PropertyValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A property-value pair, e.g. representing a feature of a product or place. Use the 'name' property for the name of the property. If there is an additional human-readable version of the value, put that into the 'description' property.\\n\\n Always use specific schema.org properties when a) they exist and b) you can populate them. Using PropertyValue as a substitute will typically not trigger the same effect as using the original, specific property.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxValue' => ['Number'], - 'measurementTechnique' => ['URL', 'Text'], - 'minValue' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'propertyID' => ['Text', 'URL'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'unitCode' => ['Text', 'URL'], - 'unitText' => ['Text'], - 'url' => ['URL'], - 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxValue' => 'The upper value of some characteristic or property.', - 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', - 'minValue' => 'The lower value of some characteristic or property.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'propertyID' => 'A commonly used identifier for the characteristic represented by the property, e.g. a manufacturer or a standard code for a property. propertyID can be (1) a prefixed string, mainly meant to be used with standards for product properties; (2) a site-specific, non-prefixed string (e.g. the primary key of the property or the vendor-specific ID of the property), or (3) a URL indicating the type of the property, either pointing to an external vocabulary, or a Web resource that describes the property (e.g. a glossary entry). Standards bodies should promote a standard prefix for the identifiers of properties from their standards.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', - 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', - 'url' => 'URL of the item.', - 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PropertyValueTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PropertyValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PropertyValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A property-value pair, e.g. representing a feature of a product or place. Use the 'name' property for the name of the property. If there is an additional human-readable version of the value, put that into the 'description' property.\\n\\n Always use specific schema.org properties when a) they exist and b) you can populate them. Using PropertyValue as a substitute will typically not trigger the same effect as using the original, specific property.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxValue' => ['Number'], + 'measurementTechnique' => ['URL', 'Text'], + 'minValue' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'propertyID' => ['Text', 'URL'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'unitCode' => ['Text', 'URL'], + 'unitText' => ['Text'], + 'url' => ['URL'], + 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxValue' => 'The upper value of some characteristic or property.', + 'measurementTechnique' => 'A technique or technology used in a [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (described using [[variableMeasured]]). This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but rather as a high level summary for dataset discovery. For example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: "mass spectrometry" or "nmr spectroscopy" or "colorimetry" or "immunofluorescence". If the [[variableMeasured]] is "depression rating", the [[measurementTechnique]] could be "Zung Scale" or "HAM-D" or "Beck Depression Inventory". If there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. ', + 'minValue' => 'The lower value of some characteristic or property.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'propertyID' => 'A commonly used identifier for the characteristic represented by the property, e.g. a manufacturer or a standard code for a property. propertyID can be (1) a prefixed string, mainly meant to be used with standards for product properties; (2) a site-specific, non-prefixed string (e.g. the primary key of the property or the vendor-specific ID of the property), or (3) a URL indicating the type of the property, either pointing to an external vocabulary, or a Web resource that describes the property (e.g. a glossary entry). Standards bodies should promote a standard prefix for the identifiers of properties from their standards.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', + 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', + 'url' => 'URL of the item.', + 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PropertyValueSpecification.php b/src/models/jsonld/PropertyValueSpecification.php index c93d807c0..c492e9b79 100644 --- a/src/models/jsonld/PropertyValueSpecification.php +++ b/src/models/jsonld/PropertyValueSpecification.php @@ -23,144 +23,144 @@ */ class PropertyValueSpecification extends MetaJsonLd implements PropertyValueSpecificationInterface, IntangibleInterface, ThingInterface { - use PropertyValueSpecificationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PropertyValueSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PropertyValueSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Property value specification.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'defaultValue' => ['Thing', 'Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxValue' => ['Number'], - 'minValue' => ['Number'], - 'multipleValues' => ['Boolean'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'readonlyValue' => ['Boolean'], - 'sameAs' => ['URL'], - 'stepValue' => ['Number'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'valueMaxLength' => ['Number'], - 'valueMinLength' => ['Number'], - 'valueName' => ['Text'], - 'valuePattern' => ['Text'], - 'valueRequired' => ['Boolean'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'defaultValue' => 'The default value of the input. For properties that expect a literal, the default is a literal value, for properties that expect an object, it\'s an ID reference to one of the current values.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxValue' => 'The upper value of some characteristic or property.', - 'minValue' => 'The lower value of some characteristic or property.', - 'multipleValues' => 'Whether multiple values are allowed for the property. Default is false.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'readonlyValue' => 'Whether or not a property is mutable. Default is false. Specifying this for a property that also has a value makes it act similar to a "hidden" input in an HTML form.', - '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.', - 'stepValue' => 'The stepValue attribute indicates the granularity that is expected (and required) of the value in a PropertyValueSpecification.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'valueMaxLength' => 'Specifies the allowed range for number of characters in a literal value.', - 'valueMinLength' => 'Specifies the minimum allowed range for number of characters in a literal value.', - 'valueName' => 'Indicates the name of the PropertyValueSpecification to be used in URL templates and form encoding in a manner analogous to HTML\'s input@name.', - 'valuePattern' => 'Specifies a regular expression for testing literal values according to the HTML spec.', - 'valueRequired' => 'Whether the property must be filled in to complete the action. Default is false.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PropertyValueSpecificationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PropertyValueSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PropertyValueSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Property value specification.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'defaultValue' => ['Thing', 'Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxValue' => ['Number'], + 'minValue' => ['Number'], + 'multipleValues' => ['Boolean'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'readonlyValue' => ['Boolean'], + 'sameAs' => ['URL'], + 'stepValue' => ['Number'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'valueMaxLength' => ['Number'], + 'valueMinLength' => ['Number'], + 'valueName' => ['Text'], + 'valuePattern' => ['Text'], + 'valueRequired' => ['Boolean'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'defaultValue' => 'The default value of the input. For properties that expect a literal, the default is a literal value, for properties that expect an object, it\'s an ID reference to one of the current values.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxValue' => 'The upper value of some characteristic or property.', + 'minValue' => 'The lower value of some characteristic or property.', + 'multipleValues' => 'Whether multiple values are allowed for the property. Default is false.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'readonlyValue' => 'Whether or not a property is mutable. Default is false. Specifying this for a property that also has a value makes it act similar to a "hidden" input in an HTML form.', + '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.', + 'stepValue' => 'The stepValue attribute indicates the granularity that is expected (and required) of the value in a PropertyValueSpecification.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'valueMaxLength' => 'Specifies the allowed range for number of characters in a literal value.', + 'valueMinLength' => 'Specifies the minimum allowed range for number of characters in a literal value.', + 'valueName' => 'Indicates the name of the PropertyValueSpecification to be used in URL templates and form encoding in a manner analogous to HTML\'s input@name.', + 'valuePattern' => 'Specifies a regular expression for testing literal values according to the HTML spec.', + 'valueRequired' => 'Whether the property must be filled in to complete the action. Default is false.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Protein.php b/src/models/jsonld/Protein.php index 72273d448..9196e95ac 100644 --- a/src/models/jsonld/Protein.php +++ b/src/models/jsonld/Protein.php @@ -29,150 +29,150 @@ */ class Protein extends MetaJsonLd implements ProteinInterface, BioChemEntityInterface, ThingInterface { - use ProteinTrait; - use BioChemEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Protein'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Protein'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BioChemEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Protein is here used in its widest possible definition, as classes of amino acid based molecules. Amyloid-beta Protein in human (UniProt P05067), eukaryota (e.g. an OrthoDB group) or even a single molecule that one can point to are all of type schema:Protein. A protein can thus be a subclass of another protein, e.g. schema:Protein as a UniProt record can have multiple isoforms inside it which would also be schema:Protein. They can be imagined, synthetic, hypothetical or naturally occurring.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], - 'bioChemInteraction' => ['BioChemEntity'], - 'bioChemSimilarity' => ['BioChemEntity'], - 'biologicalRole' => ['DefinedTerm'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'hasBioChemEntityPart' => ['BioChemEntity'], - 'hasBioPolymerSequence' => ['Text'], - 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isEncodedByBioChemEntity' => ['Gene'], - 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], - 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], - 'isPartOfBioChemEntity' => ['BioChemEntity'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', - 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', - 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', - 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', - 'hasBioPolymerSequence' => 'A symbolic representation of a BioChemEntity. For example, a nucleotide sequence of a Gene or an amino acid sequence of a Protein.', - 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', - 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', - 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', - 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', - 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ProteinTrait; + use BioChemEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Protein'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Protein'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BioChemEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Protein is here used in its widest possible definition, as classes of amino acid based molecules. Amyloid-beta Protein in human (UniProt P05067), eukaryota (e.g. an OrthoDB group) or even a single molecule that one can point to are all of type schema:Protein. A protein can thus be a subclass of another protein, e.g. schema:Protein as a UniProt record can have multiple isoforms inside it which would also be schema:Protein. They can be imagined, synthetic, hypothetical or naturally occurring.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedDisease' => ['MedicalCondition', 'URL', 'PropertyValue'], + 'bioChemInteraction' => ['BioChemEntity'], + 'bioChemSimilarity' => ['BioChemEntity'], + 'biologicalRole' => ['DefinedTerm'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'hasBioChemEntityPart' => ['BioChemEntity'], + 'hasBioPolymerSequence' => ['Text'], + 'hasMolecularFunction' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'hasRepresentation' => ['Text', 'URL', 'PropertyValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isEncodedByBioChemEntity' => ['Gene'], + 'isInvolvedInBiologicalProcess' => ['DefinedTerm', 'PropertyValue', 'URL'], + 'isLocatedInSubcellularLocation' => ['URL', 'DefinedTerm', 'PropertyValue'], + 'isPartOfBioChemEntity' => ['BioChemEntity'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxonomicRange' => ['URL', 'DefinedTerm', 'Text', 'Taxon'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedDisease' => 'Disease associated to this BioChemEntity. Such disease can be a MedicalCondition or a URL. If you want to add an evidence supporting the association, please use PropertyValue.', + 'bioChemInteraction' => 'A BioChemEntity that is known to interact with this item.', + 'bioChemSimilarity' => 'A similar BioChemEntity, e.g., obtained by fingerprint similarity algorithms.', + 'biologicalRole' => 'A role played by the BioChemEntity within a biological context.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'hasBioChemEntityPart' => 'Indicates a BioChemEntity that (in some sense) has this BioChemEntity as a part. ', + 'hasBioPolymerSequence' => 'A symbolic representation of a BioChemEntity. For example, a nucleotide sequence of a Gene or an amino acid sequence of a Protein.', + 'hasMolecularFunction' => 'Molecular function performed by this BioChemEntity; please use PropertyValue if you want to include any evidence.', + 'hasRepresentation' => 'A common representation such as a protein sequence or chemical structure for this entity. For images use schema.org/image.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isEncodedByBioChemEntity' => 'Another BioChemEntity encoding by this one.', + 'isInvolvedInBiologicalProcess' => 'Biological process this BioChemEntity is involved in; please use PropertyValue if you want to include any evidence.', + 'isLocatedInSubcellularLocation' => 'Subcellular location where this BioChemEntity is located; please use PropertyValue if you want to include any evidence.', + 'isPartOfBioChemEntity' => 'Indicates a BioChemEntity that is (in some sense) a part of this BioChemEntity. ', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxonomicRange' => 'The taxonomic grouping of the organism that expresses, encodes, or in some way related to the BioChemEntity.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Protozoa.php b/src/models/jsonld/Protozoa.php index 534d6c57d..2e4b20728 100644 --- a/src/models/jsonld/Protozoa.php +++ b/src/models/jsonld/Protozoa.php @@ -23,127 +23,127 @@ */ class Protozoa extends MetaJsonLd implements ProtozoaInterface, InfectiousAgentClassInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ProtozoaTrait; - use InfectiousAgentClassTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Protozoa'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Protozoa'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Single-celled organism that causes an infection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ProtozoaTrait; + use InfectiousAgentClassTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Protozoa'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Protozoa'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Single-celled organism that causes an infection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Psychiatric.php b/src/models/jsonld/Psychiatric.php index a81cc68ec..1be85a1d7 100644 --- a/src/models/jsonld/Psychiatric.php +++ b/src/models/jsonld/Psychiatric.php @@ -25,338 +25,338 @@ */ class Psychiatric extends MetaJsonLd implements PsychiatricInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use PsychiatricTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use PsychiatricTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Psychiatric'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Psychiatric'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Psychiatric'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Psychiatric'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the study, treatment, and prevention of mental illness, using both medical and psychological therapies.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the study, treatment, and prevention of mental illness, using both medical and psychological therapies.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PsychologicalTreatment.php b/src/models/jsonld/PsychologicalTreatment.php index 1d8a2f5be..829e5b147 100644 --- a/src/models/jsonld/PsychologicalTreatment.php +++ b/src/models/jsonld/PsychologicalTreatment.php @@ -24,158 +24,158 @@ */ class PsychologicalTreatment extends MetaJsonLd implements PsychologicalTreatmentInterface, TherapeuticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use PsychologicalTreatmentTrait; - use TherapeuticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PsychologicalTreatment'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PsychologicalTreatment'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TherapeuticProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A process of care relying upon counseling, dialogue and communication aimed at improving a mental health condition without use of drugs.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PsychologicalTreatmentTrait; + use TherapeuticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PsychologicalTreatment'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PsychologicalTreatment'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TherapeuticProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A process of care relying upon counseling, dialogue and communication aimed at improving a mental health condition without use of drugs.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PublicHealth.php b/src/models/jsonld/PublicHealth.php index 42b34521d..4ba2202c0 100644 --- a/src/models/jsonld/PublicHealth.php +++ b/src/models/jsonld/PublicHealth.php @@ -25,338 +25,338 @@ */ class PublicHealth extends MetaJsonLd implements PublicHealthInterface, MedicalBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use PublicHealthTrait; - use MedicalBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; + use PublicHealthTrait; + use MedicalBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PublicHealth'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PublicHealth'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PublicHealth'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PublicHealth'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Branch of medicine that pertains to the health services to improve and protect community health, especially epidemiology, sanitation, immunization, and preventive medicine.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Branch of medicine that pertains to the health services to improve and protect community health, especially epidemiology, sanitation, immunization, and preventive medicine.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PublicHolidays.php b/src/models/jsonld/PublicHolidays.php index e40d94bb5..99e376648 100644 --- a/src/models/jsonld/PublicHolidays.php +++ b/src/models/jsonld/PublicHolidays.php @@ -29,126 +29,126 @@ */ class PublicHolidays extends MetaJsonLd implements PublicHolidaysInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use PublicHolidaysTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PublicHolidays'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PublicHolidays'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'This stands for any day that is a public holiday; it is a placeholder for all official public holidays in some particular location. While not technically a "day of the week", it can be used with [[OpeningHoursSpecification]]. In the context of an opening hours specification it can be used to indicate opening hours on public holidays, overriding general opening hours for the day of the week on which a public holiday occurs.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PublicHolidaysTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PublicHolidays'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PublicHolidays'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'This stands for any day that is a public holiday; it is a placeholder for all official public holidays in some particular location. While not technically a "day of the week", it can be used with [[OpeningHoursSpecification]]. In the context of an opening hours specification it can be used to indicate opening hours on public holidays, overriding general opening hours for the day of the week on which a public holiday occurs.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PublicSwimmingPool.php b/src/models/jsonld/PublicSwimmingPool.php index 0c5f4783d..de482a421 100644 --- a/src/models/jsonld/PublicSwimmingPool.php +++ b/src/models/jsonld/PublicSwimmingPool.php @@ -23,331 +23,331 @@ */ class PublicSwimmingPool extends MetaJsonLd implements PublicSwimmingPoolInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use PublicSwimmingPoolTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use PublicSwimmingPoolTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PublicSwimmingPool'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PublicSwimmingPool'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PublicSwimmingPool'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PublicSwimmingPool'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A public swimming pool.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A public swimming pool.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PublicToilet.php b/src/models/jsonld/PublicToilet.php index 0352c7193..772abf02c 100644 --- a/src/models/jsonld/PublicToilet.php +++ b/src/models/jsonld/PublicToilet.php @@ -25,215 +25,215 @@ */ class PublicToilet extends MetaJsonLd implements PublicToiletInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use PublicToiletTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PublicToilet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PublicToilet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A public toilet is a room or small building containing one or more toilets (and possibly also urinals) which is available for use by the general public, or by customers or employees of certain businesses.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PublicToiletTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PublicToilet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PublicToilet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A public toilet is a room or small building containing one or more toilets (and possibly also urinals) which is available for use by the general public, or by customers or employees of certain businesses.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PublicationEvent.php b/src/models/jsonld/PublicationEvent.php index c2b6a54f7..5606ed274 100644 --- a/src/models/jsonld/PublicationEvent.php +++ b/src/models/jsonld/PublicationEvent.php @@ -25,210 +25,210 @@ */ class PublicationEvent extends MetaJsonLd implements PublicationEventInterface, EventInterface, ThingInterface { - use PublicationEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PublicationEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PublicationEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A PublicationEvent corresponds indifferently to the event of publication for a CreativeWork of any type, e.g. a broadcast event, an on-demand event, a book/journal publication via a variety of delivery media.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'free' => ['Boolean'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'publishedBy' => ['Organization', 'Person'], - 'publishedOn' => ['BroadcastService'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'free' => 'A flag to signal that the item, event, or place is accessible for free.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'publishedBy' => 'An agent associated with the publication event.', - 'publishedOn' => 'A broadcast service associated with the publication event.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PublicationEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PublicationEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PublicationEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A PublicationEvent corresponds indifferently to the event of publication for a CreativeWork of any type, e.g. a broadcast event, an on-demand event, a book/journal publication via a variety of delivery media.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'free' => ['Boolean'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'publishedBy' => ['Organization', 'Person'], + 'publishedOn' => ['BroadcastService'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'free' => 'A flag to signal that the item, event, or place is accessible for free.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'publishedBy' => 'An agent associated with the publication event.', + 'publishedOn' => 'A broadcast service associated with the publication event.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/PublicationIssue.php b/src/models/jsonld/PublicationIssue.php index 6cd25ece0..d1a0d51ec 100644 --- a/src/models/jsonld/PublicationIssue.php +++ b/src/models/jsonld/PublicationIssue.php @@ -26,354 +26,354 @@ */ class PublicationIssue extends MetaJsonLd implements PublicationIssueInterface, CreativeWorkInterface, ThingInterface { - use PublicationIssueTrait; - use CreativeWorkTrait; - use ThingTrait; + use PublicationIssueTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PublicationIssue'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PublicationIssue'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PublicationIssue'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PublicationIssue'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A part of a successively published publication such as a periodical or publication volume, often numbered, usually containing a grouping of works such as articles.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A part of a successively published publication such as a periodical or publication volume, often numbered, usually containing a grouping of works such as articles.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issueNumber' => ['Integer', 'Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issueNumber' => ['Integer', 'Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issueNumber' => 'Identifies the issue of publication; for example, "iii" or "2".', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issueNumber' => 'Identifies the issue of publication; for example, "iii" or "2".', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/PublicationVolume.php b/src/models/jsonld/PublicationVolume.php index 9b0f05bd2..64b0e5de8 100644 --- a/src/models/jsonld/PublicationVolume.php +++ b/src/models/jsonld/PublicationVolume.php @@ -26,354 +26,354 @@ */ class PublicationVolume extends MetaJsonLd implements PublicationVolumeInterface, CreativeWorkInterface, ThingInterface { - use PublicationVolumeTrait; - use CreativeWorkTrait; - use ThingTrait; + use PublicationVolumeTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'PublicationVolume'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'PublicationVolume'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/PublicationVolume'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/PublicationVolume'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A part of a successively published publication such as a periodical or multi-volume work, often numbered. It may represent a time span, such as a year.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A part of a successively published publication such as a periodical or multi-volume work, often numbered. It may represent a time span, such as a year.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'volumeNumber' => ['Text', 'Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'volumeNumber' => ['Text', 'Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'volumeNumber' => 'Identifies the volume of publication or multi-part work; for example, "iii" or "2".', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'volumeNumber' => 'Identifies the volume of publication or multi-part work; for example, "iii" or "2".', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Pulmonary.php b/src/models/jsonld/Pulmonary.php index b8d8e90d9..b0c16c05c 100644 --- a/src/models/jsonld/Pulmonary.php +++ b/src/models/jsonld/Pulmonary.php @@ -24,128 +24,128 @@ */ class Pulmonary extends MetaJsonLd implements PulmonaryInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use PulmonaryTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Pulmonary'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Pulmonary'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to the study of the respiratory system and its respective disease states.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use PulmonaryTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Pulmonary'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Pulmonary'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to the study of the respiratory system and its respective disease states.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/QAPage.php b/src/models/jsonld/QAPage.php index f56724fda..d39395047 100644 --- a/src/models/jsonld/QAPage.php +++ b/src/models/jsonld/QAPage.php @@ -25,367 +25,367 @@ */ class QAPage extends MetaJsonLd implements QAPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use QAPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use QAPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'QAPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'QAPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/QAPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/QAPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A QAPage is a WebPage focussed on a specific Question and its Answer(s), e.g. in a question answering site or documenting Frequently Asked Questions (FAQs).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A QAPage is a WebPage focussed on a specific Question and its Answer(s), e.g. in a question answering site or documenting Frequently Asked Questions (FAQs).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/QualitativeValue.php b/src/models/jsonld/QualitativeValue.php index 9c624fa66..9886de242 100644 --- a/src/models/jsonld/QualitativeValue.php +++ b/src/models/jsonld/QualitativeValue.php @@ -24,141 +24,141 @@ */ class QualitativeValue extends MetaJsonLd implements QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'QualitativeValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/QualitativeValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A predefined value for a product characteristic, e.g. the power cord plug type \'US\' or the garment sizes \'S\', \'M\', \'L\', and \'XL\'.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'QualitativeValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/QualitativeValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A predefined value for a product characteristic, e.g. the power cord plug type \'US\' or the garment sizes \'S\', \'M\', \'L\', and \'XL\'.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/QuantitativeValue.php b/src/models/jsonld/QuantitativeValue.php index 600fe3d78..5a0e694a7 100644 --- a/src/models/jsonld/QuantitativeValue.php +++ b/src/models/jsonld/QuantitativeValue.php @@ -23,137 +23,137 @@ */ class QuantitativeValue extends MetaJsonLd implements QuantitativeValueInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use QuantitativeValueTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'QuantitativeValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/QuantitativeValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = ' A point value or interval for product characteristics and other purposes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxValue' => ['Number'], - 'minValue' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'unitCode' => ['Text', 'URL'], - 'unitText' => ['Text'], - 'url' => ['URL'], - 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxValue' => 'The upper value of some characteristic or property.', - 'minValue' => 'The lower value of some characteristic or property.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', - 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', - 'url' => 'URL of the item.', - 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use QuantitativeValueTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'QuantitativeValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/QuantitativeValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = ' A point value or interval for product characteristics and other purposes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxValue' => ['Number'], + 'minValue' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'unitCode' => ['Text', 'URL'], + 'unitText' => ['Text'], + 'url' => ['URL'], + 'value' => ['StructuredValue', 'Text', 'Boolean', 'Number'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxValue' => 'The upper value of some characteristic or property.', + 'minValue' => 'The lower value of some characteristic or property.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', + 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', + 'url' => 'URL of the item.', + 'value' => 'The value of the quantitative value or property value node. * For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is \'Number\'. * For [[PropertyValue]], it can be \'Text\', \'Number\', \'Boolean\', or \'StructuredValue\'. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/QuantitativeValueDistribution.php b/src/models/jsonld/QuantitativeValueDistribution.php index 666cb8448..9d05e1cff 100644 --- a/src/models/jsonld/QuantitativeValueDistribution.php +++ b/src/models/jsonld/QuantitativeValueDistribution.php @@ -23,135 +23,135 @@ */ class QuantitativeValueDistribution extends MetaJsonLd implements QuantitativeValueDistributionInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use QuantitativeValueDistributionTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'QuantitativeValueDistribution'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/QuantitativeValueDistribution'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A statistical distribution of values.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'duration' => ['Duration'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'median' => ['Number'], - 'name' => ['Text'], - 'percentile10' => ['Number'], - 'percentile25' => ['Number'], - 'percentile75' => ['Number'], - 'percentile90' => ['Number'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'median' => 'The median value.', - 'name' => 'The name of the item.', - 'percentile10' => 'The 10th percentile value.', - 'percentile25' => 'The 25th percentile value.', - 'percentile75' => 'The 75th percentile value.', - 'percentile90' => 'The 90th percentile value.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use QuantitativeValueDistributionTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'QuantitativeValueDistribution'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/QuantitativeValueDistribution'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A statistical distribution of values.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'duration' => ['Duration'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'median' => ['Number'], + 'name' => ['Text'], + 'percentile10' => ['Number'], + 'percentile25' => ['Number'], + 'percentile75' => ['Number'], + 'percentile90' => ['Number'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'median' => 'The median value.', + 'name' => 'The name of the item.', + 'percentile10' => 'The 10th percentile value.', + 'percentile25' => 'The 25th percentile value.', + 'percentile75' => 'The 75th percentile value.', + 'percentile90' => 'The 90th percentile value.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Quantity.php b/src/models/jsonld/Quantity.php index 66923c3a4..11b765508 100644 --- a/src/models/jsonld/Quantity.php +++ b/src/models/jsonld/Quantity.php @@ -24,122 +24,122 @@ */ class Quantity extends MetaJsonLd implements QuantityInterface, IntangibleInterface, ThingInterface { - use QuantityTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Quantity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Quantity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like \'3 kg\' or \'4 milligrams\'.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use QuantityTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Quantity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Quantity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like \'3 kg\' or \'4 milligrams\'.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Question.php b/src/models/jsonld/Question.php index 2259896f5..4af7c0363 100644 --- a/src/models/jsonld/Question.php +++ b/src/models/jsonld/Question.php @@ -24,361 +24,361 @@ */ class Question extends MetaJsonLd implements QuestionInterface, CommentInterface, CreativeWorkInterface, ThingInterface { - use QuestionTrait; - use CommentTrait; - use CreativeWorkTrait; - use ThingTrait; + use QuestionTrait; + use CommentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Question'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Question'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Question'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Question'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Comment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Comment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific question - e.g. from a user seeking answers online, or collected in a Frequently Asked Questions (FAQ) document.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific question - e.g. from a user seeking answers online, or collected in a Frequently Asked Questions (FAQ) document.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'acceptedAnswer' => ['ItemList', 'Answer'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'answerCount' => ['Integer'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downvoteCount' => ['Integer'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'eduQuestionType' => ['Text'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'parentItem' => ['Comment'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suggestedAnswer' => ['Answer', 'ItemList'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'upvoteCount' => ['Integer'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'acceptedAnswer' => ['ItemList', 'Answer'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'answerCount' => ['Integer'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downvoteCount' => ['Integer'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'eduQuestionType' => ['Text'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'parentItem' => ['Comment'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suggestedAnswer' => ['Answer', 'ItemList'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'upvoteCount' => ['Integer'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'acceptedAnswer' => 'The answer(s) that has been accepted as best, typically on a Question/Answer site. Sites vary in their selection mechanisms, e.g. drawing on community opinion and/or the view of the Question author.', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'answerCount' => 'The number of answers this question has received.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'eduQuestionType' => 'For questions that are part of learning resources (e.g. Quiz), eduQuestionType indicates the format of question being given. Example: "Multiple choice", "Open ended", "Flashcard".', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'parentItem' => 'The parent of a question, answer or item in general.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suggestedAnswer' => 'An answer (possibly one of several, possibly incorrect) to a Question, e.g. on a Question/Answer site.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'acceptedAnswer' => 'The answer(s) that has been accepted as best, typically on a Question/Answer site. Sites vary in their selection mechanisms, e.g. drawing on community opinion and/or the view of the Question author.', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'answerCount' => 'The number of answers this question has received.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downvoteCount' => 'The number of downvotes this question, answer or comment has received from the community.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'eduQuestionType' => 'For questions that are part of learning resources (e.g. Quiz), eduQuestionType indicates the format of question being given. Example: "Multiple choice", "Open ended", "Flashcard".', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'parentItem' => 'The parent of a question, answer or item in general.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suggestedAnswer' => 'An answer (possibly one of several, possibly incorrect) to a Question, e.g. on a Question/Answer site.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'upvoteCount' => 'The number of upvotes this question, answer or comment has received from the community.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Quiz.php b/src/models/jsonld/Quiz.php index 11ac02a4a..992a47a38 100644 --- a/src/models/jsonld/Quiz.php +++ b/src/models/jsonld/Quiz.php @@ -23,349 +23,349 @@ */ class Quiz extends MetaJsonLd implements QuizInterface, LearningResourceInterface, CreativeWorkInterface, ThingInterface { - use QuizTrait; - use LearningResourceTrait; - use CreativeWorkTrait; - use ThingTrait; + use QuizTrait; + use LearningResourceTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Quiz'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Quiz'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Quiz'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Quiz'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LearningResource'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LearningResource'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Quiz: A test of knowledge, skills and abilities.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Quiz: A test of knowledge, skills and abilities.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'competencyRequired' => ['Text', 'URL', 'DefinedTerm'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'competencyRequired' => 'Knowledge, skill, ability or personal attribute that must be demonstrated by a person or other entity in order to do something such as earn an Educational Occupational Credential or understand a LearningResource.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Quotation.php b/src/models/jsonld/Quotation.php index bcaec5898..3d0629377 100644 --- a/src/models/jsonld/Quotation.php +++ b/src/models/jsonld/Quotation.php @@ -27,348 +27,348 @@ */ class Quotation extends MetaJsonLd implements QuotationInterface, CreativeWorkInterface, ThingInterface { - use QuotationTrait; - use CreativeWorkTrait; - use ThingTrait; + use QuotationTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Quotation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Quotation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Quotation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Quotation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A quotation. Often but not necessarily from some written work, attributable to a real world author and - if associated with a fictional character - to any fictional Person. Use [[isBasedOn]] to link to source/origin. The [[recordedIn]] property can be used to reference a Quotation from an [[Event]].'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A quotation. Often but not necessarily from some written work, attributable to a real world author and - if associated with a fictional character - to any fictional Person. Use [[isBasedOn]] to link to source/origin. The [[recordedIn]] property can be used to reference a Quotation from an [[Event]].'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'spokenByCharacter' => ['Organization', 'Person'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'spokenByCharacter' => ['Organization', 'Person'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'spokenByCharacter' => 'The (e.g. fictional) character, Person or Organization to whom the quotation is attributed within the containing CreativeWork.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'spokenByCharacter' => 'The (e.g. fictional) character, Person or Organization to whom the quotation is attributed within the containing CreativeWork.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/QuoteAction.php b/src/models/jsonld/QuoteAction.php index 798608202..1c074811d 100644 --- a/src/models/jsonld/QuoteAction.php +++ b/src/models/jsonld/QuoteAction.php @@ -24,153 +24,153 @@ */ class QuoteAction extends MetaJsonLd implements QuoteActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use QuoteActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'QuoteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/QuoteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent quotes/estimates/appraises an object/product/service with a price at a location/store.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use QuoteActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'QuoteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/QuoteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent quotes/estimates/appraises an object/product/service with a price at a location/store.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RVPark.php b/src/models/jsonld/RVPark.php index 22d146655..4afffed1c 100644 --- a/src/models/jsonld/RVPark.php +++ b/src/models/jsonld/RVPark.php @@ -24,215 +24,215 @@ */ class RVPark extends MetaJsonLd implements RVParkInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use RVParkTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RVPark'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RVPark'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A place offering space for "Recreational Vehicles", Caravans, mobile homes and the like.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RVParkTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RVPark'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RVPark'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A place offering space for "Recreational Vehicles", Caravans, mobile homes and the like.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RadiationTherapy.php b/src/models/jsonld/RadiationTherapy.php index 6e7cbcf6a..4d7d60fec 100644 --- a/src/models/jsonld/RadiationTherapy.php +++ b/src/models/jsonld/RadiationTherapy.php @@ -23,165 +23,165 @@ */ class RadiationTherapy extends MetaJsonLd implements RadiationTherapyInterface, MedicalTherapyInterface, TherapeuticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use RadiationTherapyTrait; - use MedicalTherapyTrait; - use TherapeuticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadiationTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadiationTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A process of care using radiation aimed at improving a health condition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'contraindication' => ['Text', 'MedicalContraindication'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'duplicateTherapy' => ['MedicalTherapy'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'seriousAdverseOutcome' => ['MedicalEntity'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'contraindication' => 'A contraindication for this therapy.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RadiationTherapyTrait; + use MedicalTherapyTrait; + use TherapeuticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadiationTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadiationTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A process of care using radiation aimed at improving a health condition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'contraindication' => ['Text', 'MedicalContraindication'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'duplicateTherapy' => ['MedicalTherapy'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'seriousAdverseOutcome' => ['MedicalEntity'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'contraindication' => 'A contraindication for this therapy.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RadioBroadcastService.php b/src/models/jsonld/RadioBroadcastService.php index c1cabd917..ead034b76 100644 --- a/src/models/jsonld/RadioBroadcastService.php +++ b/src/models/jsonld/RadioBroadcastService.php @@ -24,194 +24,194 @@ */ class RadioBroadcastService extends MetaJsonLd implements RadioBroadcastServiceInterface, BroadcastServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use RadioBroadcastServiceTrait; - use BroadcastServiceTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadioBroadcastService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadioBroadcastService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BroadcastService'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A delivery service through which radio content is provided via broadcast over the air or online.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'area' => ['Place'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broadcastAffiliateOf' => ['Organization'], - 'broadcastDisplayName' => ['Text'], - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], - 'broadcastTimezone' => ['Text'], - 'broadcaster' => ['Organization'], - 'broker' => ['Person', 'Organization'], - 'callSign' => ['Text'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasBroadcastChannel' => ['BroadcastChannel'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'parentService' => ['BroadcastService'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'], - 'videoFormat' => ['Text'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'area' => 'The area within which users can expect to reach the broadcast service.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'broadcastAffiliateOf' => 'The media network(s) whose content is broadcast on this station.', - 'broadcastDisplayName' => 'The name displayed in the channel guide. For many US affiliates, it is the network name.', - '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".', - 'broadcastTimezone' => 'The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts.', - 'broadcaster' => 'The organization owning or operating the broadcast service.', - '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.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasBroadcastChannel' => 'A broadcast channel of a broadcast service.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'parentService' => 'A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.', - 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RadioBroadcastServiceTrait; + use BroadcastServiceTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadioBroadcastService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadioBroadcastService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BroadcastService'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A delivery service through which radio content is provided via broadcast over the air or online.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'area' => ['Place'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broadcastAffiliateOf' => ['Organization'], + 'broadcastDisplayName' => ['Text'], + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], + 'broadcastTimezone' => ['Text'], + 'broadcaster' => ['Organization'], + 'broker' => ['Person', 'Organization'], + 'callSign' => ['Text'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasBroadcastChannel' => ['BroadcastChannel'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'parentService' => ['BroadcastService'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + 'videoFormat' => ['Text'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'area' => 'The area within which users can expect to reach the broadcast service.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'broadcastAffiliateOf' => 'The media network(s) whose content is broadcast on this station.', + 'broadcastDisplayName' => 'The name displayed in the channel guide. For many US affiliates, it is the network name.', + '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".', + 'broadcastTimezone' => 'The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts.', + 'broadcaster' => 'The organization owning or operating the broadcast service.', + '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.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasBroadcastChannel' => 'A broadcast channel of a broadcast service.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'parentService' => 'A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RadioChannel.php b/src/models/jsonld/RadioChannel.php index 19d0779f9..cfa25835e 100644 --- a/src/models/jsonld/RadioChannel.php +++ b/src/models/jsonld/RadioChannel.php @@ -24,135 +24,135 @@ */ class RadioChannel extends MetaJsonLd implements RadioChannelInterface, BroadcastChannelInterface, IntangibleInterface, ThingInterface { - use RadioChannelTrait; - use BroadcastChannelTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadioChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadioChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BroadcastChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A unique instance of a radio BroadcastService on a CableOrSatelliteService lineup.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'broadcastChannelId' => ['Text'], - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], - 'broadcastServiceTier' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'genre' => ['Text', 'URL'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inBroadcastLineup' => ['CableOrSatelliteService'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'providesBroadcastService' => ['BroadcastService'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', - '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".', - 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', - 'description' => 'A description of the item.', - '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.', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'providesBroadcastService' => 'The BroadcastService offered on this channel.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RadioChannelTrait; + use BroadcastChannelTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadioChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadioChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BroadcastChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A unique instance of a radio BroadcastService on a CableOrSatelliteService lineup.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'broadcastChannelId' => ['Text'], + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], + 'broadcastServiceTier' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'genre' => ['Text', 'URL'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inBroadcastLineup' => ['CableOrSatelliteService'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'providesBroadcastService' => ['BroadcastService'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', + '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".', + 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', + 'description' => 'A description of the item.', + '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.', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'providesBroadcastService' => 'The BroadcastService offered on this channel.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RadioClip.php b/src/models/jsonld/RadioClip.php index 2ad83ee8f..cc4cb4424 100644 --- a/src/models/jsonld/RadioClip.php +++ b/src/models/jsonld/RadioClip.php @@ -23,369 +23,369 @@ */ class RadioClip extends MetaJsonLd implements RadioClipInterface, ClipInterface, CreativeWorkInterface, ThingInterface { - use RadioClipTrait; - use ClipTrait; - use CreativeWorkTrait; - use ThingTrait; + use RadioClipTrait; + use ClipTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadioClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadioClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadioClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadioClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A short radio program or a segment/part of a radio program.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A short radio program or a segment/part of a radio program.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'clipNumber' => ['Integer', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endOffset' => ['Number', 'HyperTocEntry'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfEpisode' => ['Episode'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startOffset' => ['Number', 'HyperTocEntry'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'clipNumber' => ['Integer', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endOffset' => ['Number', 'HyperTocEntry'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfEpisode' => ['Episode'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startOffset' => ['Number', 'HyperTocEntry'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'clipNumber' => 'Position of the clip within an ordered group of clips.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfEpisode' => 'The episode to which this clip belongs.', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'clipNumber' => 'Position of the clip within an ordered group of clips.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfEpisode' => 'The episode to which this clip belongs.', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RadioEpisode.php b/src/models/jsonld/RadioEpisode.php index 72bdbeabd..a4a04fe1c 100644 --- a/src/models/jsonld/RadioEpisode.php +++ b/src/models/jsonld/RadioEpisode.php @@ -23,369 +23,369 @@ */ class RadioEpisode extends MetaJsonLd implements RadioEpisodeInterface, EpisodeInterface, CreativeWorkInterface, ThingInterface { - use RadioEpisodeTrait; - use EpisodeTrait; - use CreativeWorkTrait; - use ThingTrait; + use RadioEpisodeTrait; + use EpisodeTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadioEpisode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadioEpisode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadioEpisode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadioEpisode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Episode'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Episode'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A radio episode which can be part of a series or season.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A radio episode which can be part of a series or season.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'episodeNumber' => ['Text', 'Integer'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'episodeNumber' => ['Text', 'Integer'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RadioSeason.php b/src/models/jsonld/RadioSeason.php index 40d1127b6..e096ed434 100644 --- a/src/models/jsonld/RadioSeason.php +++ b/src/models/jsonld/RadioSeason.php @@ -23,369 +23,369 @@ */ class RadioSeason extends MetaJsonLd implements RadioSeasonInterface, CreativeWorkSeasonInterface, CreativeWorkInterface, ThingInterface { - use RadioSeasonTrait; - use CreativeWorkSeasonTrait; - use CreativeWorkTrait; - use ThingTrait; + use RadioSeasonTrait; + use CreativeWorkSeasonTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadioSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadioSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadioSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadioSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeason'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeason'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Season dedicated to radio broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Season dedicated to radio broadcast and associated online delivery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'episode' => ['Episode'], - 'episodes' => ['Episode'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfEpisodes' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'seasonNumber' => ['Text', 'Integer'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'episode' => ['Episode'], + 'episodes' => ['Episode'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfEpisodes' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'seasonNumber' => ['Text', 'Integer'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'episode' => 'An episode of a TV, radio or game media within a series or season.', - 'episodes' => 'An episode of a TV/radio series or season.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfEpisodes' => 'The number of episodes in this season or series.', - '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. ', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'seasonNumber' => 'Position of the season within an ordered group of seasons.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'episode' => 'An episode of a TV, radio or game media within a series or season.', + 'episodes' => 'An episode of a TV/radio series or season.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfEpisodes' => 'The number of episodes in this season or series.', + '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. ', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'seasonNumber' => 'Position of the season within an ordered group of seasons.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RadioSeries.php b/src/models/jsonld/RadioSeries.php index 910f976d3..484d003f0 100644 --- a/src/models/jsonld/RadioSeries.php +++ b/src/models/jsonld/RadioSeries.php @@ -24,383 +24,383 @@ */ class RadioSeries extends MetaJsonLd implements RadioSeriesInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use RadioSeriesTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use RadioSeriesTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadioSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadioSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadioSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadioSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'CreativeWorkSeries dedicated to radio broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'CreativeWorkSeries dedicated to radio broadcast and associated online delivery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'containsSeason' => ['CreativeWorkSeason'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'episode' => ['Episode'], - 'episodes' => ['Episode'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'numberOfEpisodes' => ['Integer'], - 'numberOfSeasons' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'season' => ['URL', 'CreativeWorkSeason'], - 'seasons' => ['CreativeWorkSeason'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'containsSeason' => ['CreativeWorkSeason'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'episode' => ['Episode'], + 'episodes' => ['Episode'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'numberOfEpisodes' => ['Integer'], + 'numberOfSeasons' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'season' => ['URL', 'CreativeWorkSeason'], + 'seasons' => ['CreativeWorkSeason'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'containsSeason' => 'A season that is part of the media series.', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'episode' => 'An episode of a TV, radio or game media within a series or season.', - 'episodes' => 'An episode of a TV/radio series or season.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - 'numberOfEpisodes' => 'The number of episodes in this season or series.', - 'numberOfSeasons' => 'The number of seasons in this series.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'season' => 'A season in a media series.', - 'seasons' => 'A season in a media series.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'containsSeason' => 'A season that is part of the media series.', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'episode' => 'An episode of a TV, radio or game media within a series or season.', + 'episodes' => 'An episode of a TV/radio series or season.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + 'numberOfEpisodes' => 'The number of episodes in this season or series.', + 'numberOfSeasons' => 'The number of seasons in this series.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'season' => 'A season in a media series.', + 'seasons' => 'A season in a media series.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RadioStation.php b/src/models/jsonld/RadioStation.php index 40e67d14c..babff342a 100644 --- a/src/models/jsonld/RadioStation.php +++ b/src/models/jsonld/RadioStation.php @@ -23,330 +23,330 @@ */ class RadioStation extends MetaJsonLd implements RadioStationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use RadioStationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use RadioStationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RadioStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RadioStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RadioStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RadioStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A radio station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A radio station.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Radiography.php b/src/models/jsonld/Radiography.php index e0965a982..bd7d7148e 100644 --- a/src/models/jsonld/Radiography.php +++ b/src/models/jsonld/Radiography.php @@ -25,98 +25,98 @@ */ class Radiography extends MetaJsonLd implements RadiographyInterface { - use RadiographyTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Radiography'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Radiography'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Radiography is an imaging technique that uses electromagnetic radiation other than visible light, especially X-rays, to view the internal structure of a non-uniformly composed and opaque object such as the human body.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RadiographyTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Radiography'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Radiography'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Radiography is an imaging technique that uses electromagnetic radiation other than visible light, especially X-rays, to view the internal structure of a non-uniformly composed and opaque object such as the human body.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RandomizedTrial.php b/src/models/jsonld/RandomizedTrial.php index d691d4e48..80534d61e 100644 --- a/src/models/jsonld/RandomizedTrial.php +++ b/src/models/jsonld/RandomizedTrial.php @@ -23,127 +23,127 @@ */ class RandomizedTrial extends MetaJsonLd implements RandomizedTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RandomizedTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RandomizedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RandomizedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A randomized trial design.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RandomizedTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RandomizedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RandomizedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A randomized trial design.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Rating.php b/src/models/jsonld/Rating.php index 284c46081..d801e6087 100644 --- a/src/models/jsonld/Rating.php +++ b/src/models/jsonld/Rating.php @@ -23,134 +23,134 @@ */ class Rating extends MetaJsonLd implements RatingInterface, IntangibleInterface, ThingInterface { - use RatingTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Rating'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Rating'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A rating is an evaluation on a numeric scale, such as 1 to 5 stars.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'author' => ['Organization', 'Person'], - 'bestRating' => ['Text', 'Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'ratingExplanation' => ['Text'], - 'ratingValue' => ['Number', 'Text'], - 'reviewAspect' => ['Text'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'worstRating' => ['Text', 'Number'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', - 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RatingTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Rating'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Rating'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A rating is an evaluation on a numeric scale, such as 1 to 5 stars.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'author' => ['Organization', 'Person'], + 'bestRating' => ['Text', 'Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'ratingExplanation' => ['Text'], + 'ratingValue' => ['Number', 'Text'], + 'reviewAspect' => ['Text'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'worstRating' => ['Text', 'Number'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'bestRating' => 'The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'ratingExplanation' => 'A short explanation (e.g. one to two sentences) providing background context and other information that led to the conclusion expressed in the rating. This is particularly applicable to ratings associated with "fact check" markup using [[ClaimReview]].', + 'ratingValue' => 'The rating for the content. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'worstRating' => 'The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReactAction.php b/src/models/jsonld/ReactAction.php index 7b3f8d1c5..1851fa8f4 100644 --- a/src/models/jsonld/ReactAction.php +++ b/src/models/jsonld/ReactAction.php @@ -24,147 +24,147 @@ */ class ReactAction extends MetaJsonLd implements ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use ReactActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReactAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReactAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of responding instinctively and emotionally to an object, expressing a sentiment.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReactActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReactAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReactAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of responding instinctively and emotionally to an object, expressing a sentiment.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReadAction.php b/src/models/jsonld/ReadAction.php index d6eeb0eba..711e61a0f 100644 --- a/src/models/jsonld/ReadAction.php +++ b/src/models/jsonld/ReadAction.php @@ -23,151 +23,151 @@ */ class ReadAction extends MetaJsonLd implements ReadActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use ReadActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReadAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReadAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of consuming written content.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReadActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReadAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReadAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of consuming written content.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReadPermission.php b/src/models/jsonld/ReadPermission.php index 07cdd161f..80b00e4cc 100644 --- a/src/models/jsonld/ReadPermission.php +++ b/src/models/jsonld/ReadPermission.php @@ -23,126 +23,126 @@ */ class ReadPermission extends MetaJsonLd implements ReadPermissionInterface, DigitalDocumentPermissionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReadPermissionTrait; - use DigitalDocumentPermissionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReadPermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReadPermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Permission to read or view the document.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReadPermissionTrait; + use DigitalDocumentPermissionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReadPermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReadPermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Permission to read or view the document.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RealEstateAgent.php b/src/models/jsonld/RealEstateAgent.php index c5083491a..0e75caef3 100644 --- a/src/models/jsonld/RealEstateAgent.php +++ b/src/models/jsonld/RealEstateAgent.php @@ -23,330 +23,330 @@ */ class RealEstateAgent extends MetaJsonLd implements RealEstateAgentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use RealEstateAgentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use RealEstateAgentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RealEstateAgent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RealEstateAgent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RealEstateAgent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RealEstateAgent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A real-estate agent.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A real-estate agent.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RealEstateListing.php b/src/models/jsonld/RealEstateListing.php index ff88a3fd1..3cda20d4e 100644 --- a/src/models/jsonld/RealEstateListing.php +++ b/src/models/jsonld/RealEstateListing.php @@ -26,371 +26,371 @@ */ class RealEstateListing extends MetaJsonLd implements RealEstateListingInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use RealEstateListingTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use RealEstateListingTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RealEstateListing'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RealEstateListing'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RealEstateListing'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RealEstateListing'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A [[RealEstateListing]] is a listing that describes one or more real-estate [[Offer]]s (whose [[businessFunction]] is typically to lease out, or to sell).\n The [[RealEstateListing]] type itself represents the overall listing, as manifested in some [[WebPage]].\n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A [[RealEstateListing]] is a listing that describes one or more real-estate [[Offer]]s (whose [[businessFunction]] is typically to lease out, or to sell).\n The [[RealEstateListing]] type itself represents the overall listing, as manifested in some [[WebPage]].\n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePosted' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePosted' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePosted' => 'Publication date of an online listing.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePosted' => 'Publication date of an online listing.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RearWheelDriveConfiguration.php b/src/models/jsonld/RearWheelDriveConfiguration.php index b52f4c753..000451dc5 100644 --- a/src/models/jsonld/RearWheelDriveConfiguration.php +++ b/src/models/jsonld/RearWheelDriveConfiguration.php @@ -24,143 +24,143 @@ */ class RearWheelDriveConfiguration extends MetaJsonLd implements RearWheelDriveConfigurationInterface, DriveWheelConfigurationValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RearWheelDriveConfigurationTrait; - use DriveWheelConfigurationValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RearWheelDriveConfiguration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RearWheelDriveConfiguration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Real-wheel drive is a transmission layout where the engine drives the rear wheels.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RearWheelDriveConfigurationTrait; + use DriveWheelConfigurationValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RearWheelDriveConfiguration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RearWheelDriveConfiguration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DriveWheelConfigurationValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Real-wheel drive is a transmission layout where the engine drives the rear wheels.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReceiveAction.php b/src/models/jsonld/ReceiveAction.php index f119c0c5b..8eaeb28bc 100644 --- a/src/models/jsonld/ReceiveAction.php +++ b/src/models/jsonld/ReceiveAction.php @@ -28,155 +28,155 @@ */ class ReceiveAction extends MetaJsonLd implements ReceiveActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use ReceiveActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReceiveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReceiveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of physically/electronically taking delivery of an object that has been transferred from an origin to a destination. Reciprocal of SendAction.\n\nRelated actions:\n\n* [[SendAction]]: The reciprocal of ReceiveAction.\n* [[TakeAction]]: Unlike TakeAction, ReceiveAction does not imply that the ownership has been transferred (e.g. I can receive a package, but it does not mean the package is now mine).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'deliveryMethod' => ['DeliveryMethod'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'sender' => ['Audience', 'Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'sender' => 'A sub property of participant. The participant who is at the sending end of the action.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReceiveActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReceiveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReceiveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of physically/electronically taking delivery of an object that has been transferred from an origin to a destination. Reciprocal of SendAction.\n\nRelated actions:\n\n* [[SendAction]]: The reciprocal of ReceiveAction.\n* [[TakeAction]]: Unlike TakeAction, ReceiveAction does not imply that the ownership has been transferred (e.g. I can receive a package, but it does not mean the package is now mine).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'deliveryMethod' => ['DeliveryMethod'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'sender' => ['Audience', 'Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'sender' => 'A sub property of participant. The participant who is at the sending end of the action.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Recipe.php b/src/models/jsonld/Recipe.php index 5a322ee65..24ae571fb 100644 --- a/src/models/jsonld/Recipe.php +++ b/src/models/jsonld/Recipe.php @@ -25,385 +25,385 @@ */ class Recipe extends MetaJsonLd implements RecipeInterface, HowToInterface, CreativeWorkInterface, ThingInterface { - use RecipeTrait; - use HowToTrait; - use CreativeWorkTrait; - use ThingTrait; + use RecipeTrait; + use HowToTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Recipe'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Recipe'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Recipe'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Recipe'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HowTo'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HowTo'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A recipe. For dietary restrictions covered by the recipe, a few common restrictions are enumerated via [[suitableForDiet]]. The [[keywords]] property can also be used to add more detail.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A recipe. For dietary restrictions covered by the recipe, a few common restrictions are enumerated via [[suitableForDiet]]. The [[keywords]] property can also be used to add more detail.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'cookTime' => ['Duration'], - 'cookingMethod' => ['Text'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'estimatedCost' => ['Text', 'MonetaryAmount'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ingredients' => ['Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'nutrition' => ['NutritionInformation'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'performTime' => ['Duration'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'prepTime' => ['Duration'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recipeCategory' => ['Text'], - 'recipeCuisine' => ['Text'], - 'recipeIngredient' => ['Text'], - 'recipeInstructions' => ['Text', 'ItemList', 'CreativeWork'], - 'recipeYield' => ['QuantitativeValue', 'Text'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'step' => ['HowToSection', 'HowToStep', 'Text', 'CreativeWork'], - 'steps' => ['Text', 'ItemList', 'CreativeWork'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suitableForDiet' => ['RestrictedDiet'], - 'supply' => ['Text', 'HowToSupply'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'tool' => ['HowToTool', 'Text'], - 'totalTime' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'yield' => ['QuantitativeValue', 'Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'cookTime' => ['Duration'], + 'cookingMethod' => ['Text'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'estimatedCost' => ['Text', 'MonetaryAmount'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ingredients' => ['Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'nutrition' => ['NutritionInformation'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'performTime' => ['Duration'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'prepTime' => ['Duration'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recipeCategory' => ['Text'], + 'recipeCuisine' => ['Text'], + 'recipeIngredient' => ['Text'], + 'recipeInstructions' => ['Text', 'ItemList', 'CreativeWork'], + 'recipeYield' => ['QuantitativeValue', 'Text'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'step' => ['HowToSection', 'HowToStep', 'Text', 'CreativeWork'], + 'steps' => ['Text', 'ItemList', 'CreativeWork'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suitableForDiet' => ['RestrictedDiet'], + 'supply' => ['Text', 'HowToSupply'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'tool' => ['HowToTool', 'Text'], + 'totalTime' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'yield' => ['QuantitativeValue', 'Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'cookTime' => 'The time it takes to actually cook the dish, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'cookingMethod' => 'The method of cooking, such as Frying, Steaming, ...', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'estimatedCost' => 'The estimated cost of the supply or supplies consumed when performing instructions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ingredients' => 'A single ingredient used in the recipe, e.g. sugar, flour or garlic.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'nutrition' => 'Nutrition information about the recipe or menu item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'performTime' => 'The length of time it takes to perform instructions or a direction (not including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'prepTime' => 'The length of time it takes to prepare the items to be used in instructions or a direction, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recipeCategory' => 'The category of the recipe—for example, appetizer, entree, etc.', - 'recipeCuisine' => 'The cuisine of the recipe (for example, French or Ethiopian).', - 'recipeIngredient' => 'A single ingredient used in the recipe, e.g. sugar, flour or garlic.', - 'recipeInstructions' => 'A step in making the recipe, in the form of a single item (document, video, etc.) or an ordered list with HowToStep and/or HowToSection items.', - 'recipeYield' => 'The quantity produced by the recipe (for example, number of people served, number of servings, etc).', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'step' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection.', - 'steps' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed \'steps\'; \'step\' is preferred).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suitableForDiet' => 'Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.', - 'supply' => 'A sub-property of instrument. A supply consumed when performing instructions or a direction.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'tool' => 'A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.', - 'totalTime' => 'The total time required to perform instructions or a direction (including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'yield' => 'The quantity that results by performing instructions. For example, a paper airplane, 10 personalized candles.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'cookTime' => 'The time it takes to actually cook the dish, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'cookingMethod' => 'The method of cooking, such as Frying, Steaming, ...', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'estimatedCost' => 'The estimated cost of the supply or supplies consumed when performing instructions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ingredients' => 'A single ingredient used in the recipe, e.g. sugar, flour or garlic.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'nutrition' => 'Nutrition information about the recipe or menu item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'performTime' => 'The length of time it takes to perform instructions or a direction (not including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'prepTime' => 'The length of time it takes to prepare the items to be used in instructions or a direction, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recipeCategory' => 'The category of the recipe—for example, appetizer, entree, etc.', + 'recipeCuisine' => 'The cuisine of the recipe (for example, French or Ethiopian).', + 'recipeIngredient' => 'A single ingredient used in the recipe, e.g. sugar, flour or garlic.', + 'recipeInstructions' => 'A step in making the recipe, in the form of a single item (document, video, etc.) or an ordered list with HowToStep and/or HowToSection items.', + 'recipeYield' => 'The quantity produced by the recipe (for example, number of people served, number of servings, etc).', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'step' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection.', + 'steps' => 'A single step item (as HowToStep, text, document, video, etc.) or a HowToSection (originally misnamed \'steps\'; \'step\' is preferred).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suitableForDiet' => 'Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.', + 'supply' => 'A sub-property of instrument. A supply consumed when performing instructions or a direction.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'tool' => 'A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.', + 'totalTime' => 'The total time required to perform instructions or a direction (including time to prepare the supplies), in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'yield' => 'The quantity that results by performing instructions. For example, a paper airplane, 10 personalized candles.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Recommendation.php b/src/models/jsonld/Recommendation.php index 6154103f1..8b3a51afa 100644 --- a/src/models/jsonld/Recommendation.php +++ b/src/models/jsonld/Recommendation.php @@ -28,367 +28,367 @@ */ class Recommendation extends MetaJsonLd implements RecommendationInterface, ReviewInterface, CreativeWorkInterface, ThingInterface { - use RecommendationTrait; - use ReviewTrait; - use CreativeWorkTrait; - use ThingTrait; + use RecommendationTrait; + use ReviewTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Recommendation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Recommendation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Recommendation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Recommendation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = '[[Recommendation]] is a type of [[Review]] that suggests or proposes something as the best option or best course of action. Recommendations may be for products or services, or other concrete things, as in the case of a ranked list or product guide. A [[Guide]] may list multiple recommendations for different categories. For example, in a [[Guide]] about which TVs to buy, the author may have several [[Recommendation]]s.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = '[[Recommendation]] is a type of [[Review]] that suggests or proposes something as the best option or best course of action. Recommendations may be for products or services, or other concrete things, as in the case of a ranked list or product guide. A [[Guide]] may list multiple recommendations for different categories. For example, in a [[Guide]] about which TVs to buy, the author may have several [[Recommendation]]s.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RecommendedDoseSchedule.php b/src/models/jsonld/RecommendedDoseSchedule.php index 54ce4d924..9a4e5e3e6 100644 --- a/src/models/jsonld/RecommendedDoseSchedule.php +++ b/src/models/jsonld/RecommendedDoseSchedule.php @@ -26,148 +26,148 @@ */ class RecommendedDoseSchedule extends MetaJsonLd implements RecommendedDoseScheduleInterface, DoseScheduleInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use RecommendedDoseScheduleTrait; - use DoseScheduleTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RecommendedDoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RecommendedDoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DoseSchedule'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A recommended dosing schedule for a drug or supplement as prescribed or recommended by an authority or by the drug/supplement\'s manufacturer. Capture the recommending authority in the recognizingAuthority property of MedicalEntity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseUnit' => ['Text'], - 'doseValue' => ['Number', 'QualitativeValue'], - 'frequency' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetPopulation' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', - 'doseValue' => 'The value of the dose, e.g. 500.', - 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RecommendedDoseScheduleTrait; + use DoseScheduleTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RecommendedDoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RecommendedDoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DoseSchedule'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A recommended dosing schedule for a drug or supplement as prescribed or recommended by an authority or by the drug/supplement\'s manufacturer. Capture the recommending authority in the recognizingAuthority property of MedicalEntity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseUnit' => ['Text'], + 'doseValue' => ['Number', 'QualitativeValue'], + 'frequency' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetPopulation' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', + 'doseValue' => 'The value of the dose, e.g. 500.', + 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Recruiting.php b/src/models/jsonld/Recruiting.php index d31d53881..288cf1c4c 100644 --- a/src/models/jsonld/Recruiting.php +++ b/src/models/jsonld/Recruiting.php @@ -23,127 +23,127 @@ */ class Recruiting extends MetaJsonLd implements RecruitingInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RecruitingTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Recruiting'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Recruiting'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Recruiting participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RecruitingTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Recruiting'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Recruiting'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Recruiting participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RecyclingCenter.php b/src/models/jsonld/RecyclingCenter.php index 27e071159..075659363 100644 --- a/src/models/jsonld/RecyclingCenter.php +++ b/src/models/jsonld/RecyclingCenter.php @@ -23,330 +23,330 @@ */ class RecyclingCenter extends MetaJsonLd implements RecyclingCenterInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use RecyclingCenterTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use RecyclingCenterTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RecyclingCenter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RecyclingCenter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RecyclingCenter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RecyclingCenter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A recycling center.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A recycling center.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ReducedRelevanceForChildrenConsideration.php b/src/models/jsonld/ReducedRelevanceForChildrenConsideration.php index 643b106a0..ea59fdb01 100644 --- a/src/models/jsonld/ReducedRelevanceForChildrenConsideration.php +++ b/src/models/jsonld/ReducedRelevanceForChildrenConsideration.php @@ -24,126 +24,126 @@ */ class ReducedRelevanceForChildrenConsideration extends MetaJsonLd implements ReducedRelevanceForChildrenConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReducedRelevanceForChildrenConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReducedRelevanceForChildrenConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReducedRelevanceForChildrenConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A general code for cases where relevance to children is reduced, e.g. adult education, mortgages, retirement-related products, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReducedRelevanceForChildrenConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReducedRelevanceForChildrenConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReducedRelevanceForChildrenConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A general code for cases where relevance to children is reduced, e.g. adult education, mortgages, retirement-related products, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RefundTypeEnumeration.php b/src/models/jsonld/RefundTypeEnumeration.php index 20e83c5b6..6425fdcdc 100644 --- a/src/models/jsonld/RefundTypeEnumeration.php +++ b/src/models/jsonld/RefundTypeEnumeration.php @@ -23,125 +23,125 @@ */ class RefundTypeEnumeration extends MetaJsonLd implements RefundTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RefundTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RefundTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates several kinds of product return refund types.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RefundTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RefundTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates several kinds of product return refund types.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RefurbishedCondition.php b/src/models/jsonld/RefurbishedCondition.php index 83825b3da..d459282e7 100644 --- a/src/models/jsonld/RefurbishedCondition.php +++ b/src/models/jsonld/RefurbishedCondition.php @@ -23,126 +23,126 @@ */ class RefurbishedCondition extends MetaJsonLd implements RefurbishedConditionInterface, OfferItemConditionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RefurbishedConditionTrait; - use OfferItemConditionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RefurbishedCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RefurbishedCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is refurbished.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RefurbishedConditionTrait; + use OfferItemConditionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RefurbishedCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RefurbishedCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is refurbished.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RegisterAction.php b/src/models/jsonld/RegisterAction.php index 95ce91be3..4d4cb0805 100644 --- a/src/models/jsonld/RegisterAction.php +++ b/src/models/jsonld/RegisterAction.php @@ -29,147 +29,147 @@ */ class RegisterAction extends MetaJsonLd implements RegisterActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use RegisterActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RegisterAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RegisterAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of registering to be a user of a service, product or web page.\n\nRelated actions:\n\n* [[JoinAction]]: Unlike JoinAction, RegisterAction implies you are registering to be a user of a service, *not* a group/team of people.\n* [[FollowAction]]: Unlike FollowAction, RegisterAction doesn\'t imply that the agent is expecting to poll for updates from the object.\n* [[SubscribeAction]]: Unlike SubscribeAction, RegisterAction doesn\'t imply that the agent is expecting updates from the object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RegisterActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RegisterAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RegisterAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of registering to be a user of a service, product or web page.\n\nRelated actions:\n\n* [[JoinAction]]: Unlike JoinAction, RegisterAction implies you are registering to be a user of a service, *not* a group/team of people.\n* [[FollowAction]]: Unlike FollowAction, RegisterAction doesn\'t imply that the agent is expecting to poll for updates from the object.\n* [[SubscribeAction]]: Unlike SubscribeAction, RegisterAction doesn\'t imply that the agent is expecting updates from the object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Registry.php b/src/models/jsonld/Registry.php index 256261b13..8d650411c 100644 --- a/src/models/jsonld/Registry.php +++ b/src/models/jsonld/Registry.php @@ -23,127 +23,127 @@ */ class Registry extends MetaJsonLd implements RegistryInterface, MedicalObservationalStudyDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RegistryTrait; - use MedicalObservationalStudyDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Registry'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Registry'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A registry-based study design.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RegistryTrait; + use MedicalObservationalStudyDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Registry'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Registry'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalObservationalStudyDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A registry-based study design.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReimbursementCap.php b/src/models/jsonld/ReimbursementCap.php index 52eb8d82d..aa4a812fe 100644 --- a/src/models/jsonld/ReimbursementCap.php +++ b/src/models/jsonld/ReimbursementCap.php @@ -24,127 +24,127 @@ */ class ReimbursementCap extends MetaJsonLd implements ReimbursementCapInterface, DrugCostCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReimbursementCapTrait; - use DrugCostCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReimbursementCap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReimbursementCap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugCostCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The drug\'s cost represents the maximum reimbursement paid by an insurer for the drug.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReimbursementCapTrait; + use DrugCostCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReimbursementCap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReimbursementCap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugCostCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The drug\'s cost represents the maximum reimbursement paid by an insurer for the drug.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RejectAction.php b/src/models/jsonld/RejectAction.php index 13d586b46..65ad1ed64 100644 --- a/src/models/jsonld/RejectAction.php +++ b/src/models/jsonld/RejectAction.php @@ -24,148 +24,148 @@ */ class RejectAction extends MetaJsonLd implements RejectActionInterface, AllocateActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use RejectActionTrait; - use AllocateActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RejectAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RejectAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AllocateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of rejecting to/adopting an object.\n\nRelated actions:\n\n* [[AcceptAction]]: The antonym of RejectAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RejectActionTrait; + use AllocateActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RejectAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RejectAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AllocateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of rejecting to/adopting an object.\n\nRelated actions:\n\n* [[AcceptAction]]: The antonym of RejectAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RelatedTopicsHealthAspect.php b/src/models/jsonld/RelatedTopicsHealthAspect.php index f10d59046..b6e3162c8 100644 --- a/src/models/jsonld/RelatedTopicsHealthAspect.php +++ b/src/models/jsonld/RelatedTopicsHealthAspect.php @@ -23,126 +23,126 @@ */ class RelatedTopicsHealthAspect extends MetaJsonLd implements RelatedTopicsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RelatedTopicsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RelatedTopicsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RelatedTopicsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Other prominent or relevant topics tied to the main topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RelatedTopicsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RelatedTopicsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RelatedTopicsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Other prominent or relevant topics tied to the main topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RemixAlbum.php b/src/models/jsonld/RemixAlbum.php index 1277f1539..41cb1f544 100644 --- a/src/models/jsonld/RemixAlbum.php +++ b/src/models/jsonld/RemixAlbum.php @@ -23,126 +23,126 @@ */ class RemixAlbum extends MetaJsonLd implements RemixAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RemixAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RemixAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RemixAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'RemixAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RemixAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RemixAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RemixAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'RemixAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Renal.php b/src/models/jsonld/Renal.php index ad17371eb..3309bf0de 100644 --- a/src/models/jsonld/Renal.php +++ b/src/models/jsonld/Renal.php @@ -24,128 +24,128 @@ */ class Renal extends MetaJsonLd implements RenalInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use RenalTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Renal'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Renal'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to the study of the kidneys and its respective disease states.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RenalTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Renal'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Renal'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to the study of the kidneys and its respective disease states.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RentAction.php b/src/models/jsonld/RentAction.php index cb36ac673..543f3c659 100644 --- a/src/models/jsonld/RentAction.php +++ b/src/models/jsonld/RentAction.php @@ -25,157 +25,157 @@ */ class RentAction extends MetaJsonLd implements RentActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use RentActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RentAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RentAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of giving money in return for temporary use, but not ownership, of an object such as a vehicle or property. For example, an agent rents a property from a landlord in exchange for a periodic payment.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'landlord' => ['Person', 'Organization'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'realEstateAgent' => ['RealEstateAgent'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'landlord' => 'A sub property of participant. The owner of the real estate property.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'realEstateAgent' => 'A sub property of participant. The real estate agent involved in the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RentActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RentAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RentAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of giving money in return for temporary use, but not ownership, of an object such as a vehicle or property. For example, an agent rents a property from a landlord in exchange for a periodic payment.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'landlord' => ['Person', 'Organization'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'realEstateAgent' => ['RealEstateAgent'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'landlord' => 'A sub property of participant. The owner of the real estate property.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'realEstateAgent' => 'A sub property of participant. The real estate agent involved in the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RentalCarReservation.php b/src/models/jsonld/RentalCarReservation.php index 7a7d7e3a2..1e6f5b5b1 100644 --- a/src/models/jsonld/RentalCarReservation.php +++ b/src/models/jsonld/RentalCarReservation.php @@ -25,157 +25,157 @@ */ class RentalCarReservation extends MetaJsonLd implements RentalCarReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use RentalCarReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RentalCarReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RentalCarReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation for a rental car.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dropoffLocation' => ['Place'], - 'dropoffTime' => ['DateTime'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'pickupLocation' => ['Place'], - 'pickupTime' => ['DateTime'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dropoffLocation' => 'Where a rental car can be dropped off.', - 'dropoffTime' => 'When a rental car can be dropped off.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'pickupLocation' => 'Where a taxi will pick up a passenger or a rental car can be picked up.', - 'pickupTime' => 'When a taxi will pick up a passenger or a rental car can be picked up.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RentalCarReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RentalCarReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RentalCarReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation for a rental car.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dropoffLocation' => ['Place'], + 'dropoffTime' => ['DateTime'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'pickupLocation' => ['Place'], + 'pickupTime' => ['DateTime'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dropoffLocation' => 'Where a rental car can be dropped off.', + 'dropoffTime' => 'When a rental car can be dropped off.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'pickupLocation' => 'Where a taxi will pick up a passenger or a rental car can be picked up.', + 'pickupTime' => 'When a taxi will pick up a passenger or a rental car can be picked up.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RentalVehicleUsage.php b/src/models/jsonld/RentalVehicleUsage.php index d627bb398..174427a06 100644 --- a/src/models/jsonld/RentalVehicleUsage.php +++ b/src/models/jsonld/RentalVehicleUsage.php @@ -23,126 +23,126 @@ */ class RentalVehicleUsage extends MetaJsonLd implements RentalVehicleUsageInterface, CarUsageTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RentalVehicleUsageTrait; - use CarUsageTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RentalVehicleUsage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RentalVehicleUsage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CarUsageType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates the usage of the vehicle as a rental car.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RentalVehicleUsageTrait; + use CarUsageTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RentalVehicleUsage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RentalVehicleUsage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CarUsageType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates the usage of the vehicle as a rental car.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RepaymentSpecification.php b/src/models/jsonld/RepaymentSpecification.php index 58f81164f..a74f517a7 100644 --- a/src/models/jsonld/RepaymentSpecification.php +++ b/src/models/jsonld/RepaymentSpecification.php @@ -23,133 +23,133 @@ */ class RepaymentSpecification extends MetaJsonLd implements RepaymentSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use RepaymentSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RepaymentSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RepaymentSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A structured value representing repayment.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'downPayment' => ['Number', 'MonetaryAmount'], - 'earlyPrepaymentPenalty' => ['MonetaryAmount'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'loanPaymentAmount' => ['MonetaryAmount'], - 'loanPaymentFrequency' => ['Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numberOfLoanPayments' => ['Number'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'downPayment' => 'a type of payment made in cash during the onset of the purchase of an expensive good/service. The payment typically represents only a percentage of the full purchase price.', - 'earlyPrepaymentPenalty' => 'The amount to be paid as a penalty in the event of early payment of the loan.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'loanPaymentAmount' => 'The amount of money to pay in a single payment.', - 'loanPaymentFrequency' => 'Frequency of payments due, i.e. number of months between payments. This is defined as a frequency, i.e. the reciprocal of a period of time.', - '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.', - 'name' => 'The name of the item.', - 'numberOfLoanPayments' => 'The number of payments contractually required at origination to repay the loan. For monthly paying loans this is the number of months from the contractual first payment date to the maturity date.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RepaymentSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RepaymentSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RepaymentSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A structured value representing repayment.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'downPayment' => ['Number', 'MonetaryAmount'], + 'earlyPrepaymentPenalty' => ['MonetaryAmount'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'loanPaymentAmount' => ['MonetaryAmount'], + 'loanPaymentFrequency' => ['Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numberOfLoanPayments' => ['Number'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'downPayment' => 'a type of payment made in cash during the onset of the purchase of an expensive good/service. The payment typically represents only a percentage of the full purchase price.', + 'earlyPrepaymentPenalty' => 'The amount to be paid as a penalty in the event of early payment of the loan.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'loanPaymentAmount' => 'The amount of money to pay in a single payment.', + 'loanPaymentFrequency' => 'Frequency of payments due, i.e. number of months between payments. This is defined as a frequency, i.e. the reciprocal of a period of time.', + '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.', + 'name' => 'The name of the item.', + 'numberOfLoanPayments' => 'The number of payments contractually required at origination to repay the loan. For monthly paying loans this is the number of months from the contractual first payment date to the maturity date.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReplaceAction.php b/src/models/jsonld/ReplaceAction.php index 311ff19a4..374f17d14 100644 --- a/src/models/jsonld/ReplaceAction.php +++ b/src/models/jsonld/ReplaceAction.php @@ -24,155 +24,155 @@ */ class ReplaceAction extends MetaJsonLd implements ReplaceActionInterface, UpdateActionInterface, ActionInterface, ThingInterface { - use ReplaceActionTrait; - use UpdateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReplaceAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReplaceAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UpdateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of editing a recipient by replacing an old object with a new object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'collection' => ['Thing'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'replacee' => ['Thing'], - 'replacer' => ['Thing'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'targetCollection' => ['Thing'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'collection' => 'A sub property of object. The collection target of the action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'replacee' => 'A sub property of object. The object that is being replaced.', - 'replacer' => 'A sub property of object. The object that replaces.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'targetCollection' => 'A sub property of object. The collection target of the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReplaceActionTrait; + use UpdateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReplaceAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReplaceAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UpdateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of editing a recipient by replacing an old object with a new object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'collection' => ['Thing'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'replacee' => ['Thing'], + 'replacer' => ['Thing'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'targetCollection' => ['Thing'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'collection' => 'A sub property of object. The collection target of the action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'replacee' => 'A sub property of object. The object that is being replaced.', + 'replacer' => 'A sub property of object. The object that replaces.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'targetCollection' => 'A sub property of object. The collection target of the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReplyAction.php b/src/models/jsonld/ReplyAction.php index 5bdf00025..d7acc0239 100644 --- a/src/models/jsonld/ReplyAction.php +++ b/src/models/jsonld/ReplyAction.php @@ -25,158 +25,158 @@ */ class ReplyAction extends MetaJsonLd implements ReplyActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use ReplyActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReplyAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReplyAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of responding to a question/message asked/sent by the object. Related to [[AskAction]].\n\nRelated actions:\n\n* [[AskAction]]: Appears generally as an origin of a ReplyAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'resultComment' => ['Comment'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - 'resultComment' => 'A sub property of result. The Comment created or sent as a result of this action.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReplyActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReplyAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReplyAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of responding to a question/message asked/sent by the object. Related to [[AskAction]].\n\nRelated actions:\n\n* [[AskAction]]: Appears generally as an origin of a ReplyAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'resultComment' => ['Comment'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + 'resultComment' => 'A sub property of result. The Comment created or sent as a result of this action.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Report.php b/src/models/jsonld/Report.php index 36005cbda..f244d5e89 100644 --- a/src/models/jsonld/Report.php +++ b/src/models/jsonld/Report.php @@ -23,365 +23,365 @@ */ class Report extends MetaJsonLd implements ReportInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use ReportTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use ReportTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Report'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Report'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Report'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Report'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Report generated by governmental or non-governmental organization.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Report generated by governmental or non-governmental organization.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'reportNumber' => ['Text'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'reportNumber' => ['Text'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'reportNumber' => 'The number or other unique designator assigned to a Report by the publishing organization.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'reportNumber' => 'The number or other unique designator assigned to a Report by the publishing organization.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ReportageNewsArticle.php b/src/models/jsonld/ReportageNewsArticle.php index 64c02df89..894bde6ff 100644 --- a/src/models/jsonld/ReportageNewsArticle.php +++ b/src/models/jsonld/ReportageNewsArticle.php @@ -38,374 +38,374 @@ */ class ReportageNewsArticle extends MetaJsonLd implements ReportageNewsArticleInterface, NewsArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use ReportageNewsArticleTrait; - use NewsArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use ReportageNewsArticleTrait; + use NewsArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReportageNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReportageNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReportageNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReportageNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "The [[ReportageNewsArticle]] type is a subtype of [[NewsArticle]] representing\n news articles which are the result of journalistic news reporting conventions.\n\nIn practice many news publishers produce a wide variety of article types, many of which might be considered a [[NewsArticle]] but not a [[ReportageNewsArticle]]. For example, opinion pieces, reviews, analysis, sponsored or satirical articles, or articles that combine several of these elements.\n\nThe [[ReportageNewsArticle]] type is based on a stricter ideal for \"news\" as a work of journalism, with articles based on factual information either observed or verified by the author, or reported and verified from knowledgeable sources. This often includes perspectives from multiple viewpoints on a particular issue (distinguishing news reports from public relations or propaganda). News reports in the [[ReportageNewsArticle]] sense de-emphasize the opinion of the author, with commentary and value judgements typically expressed elsewhere.\n\nA [[ReportageNewsArticle]] which goes deeper into analysis can also be marked with an additional type of [[AnalysisNewsArticle]]."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "The [[ReportageNewsArticle]] type is a subtype of [[NewsArticle]] representing\n news articles which are the result of journalistic news reporting conventions.\n\nIn practice many news publishers produce a wide variety of article types, many of which might be considered a [[NewsArticle]] but not a [[ReportageNewsArticle]]. For example, opinion pieces, reviews, analysis, sponsored or satirical articles, or articles that combine several of these elements.\n\nThe [[ReportageNewsArticle]] type is based on a stricter ideal for \"news\" as a work of journalism, with articles based on factual information either observed or verified by the author, or reported and verified from knowledgeable sources. This often includes perspectives from multiple viewpoints on a particular issue (distinguishing news reports from public relations or propaganda). News reports in the [[ReportageNewsArticle]] sense de-emphasize the opinion of the author, with commentary and value judgements typically expressed elsewhere.\n\nA [[ReportageNewsArticle]] which goes deeper into analysis can also be marked with an additional type of [[AnalysisNewsArticle]]."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateline' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'printColumn' => ['Text'], - 'printEdition' => ['Text'], - 'printPage' => ['Text'], - 'printSection' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateline' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'printColumn' => ['Text'], + 'printEdition' => ['Text'], + 'printPage' => ['Text'], + 'printSection' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', - 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', - 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', - 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', + 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', + 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', + 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ReportedDoseSchedule.php b/src/models/jsonld/ReportedDoseSchedule.php index 686dd789a..831bd4060 100644 --- a/src/models/jsonld/ReportedDoseSchedule.php +++ b/src/models/jsonld/ReportedDoseSchedule.php @@ -23,148 +23,148 @@ */ class ReportedDoseSchedule extends MetaJsonLd implements ReportedDoseScheduleInterface, DoseScheduleInterface, MedicalIntangibleInterface, MedicalEntityInterface, ThingInterface { - use ReportedDoseScheduleTrait; - use DoseScheduleTrait; - use MedicalIntangibleTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReportedDoseSchedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReportedDoseSchedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DoseSchedule'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A patient-reported or observed dosing schedule for a drug or supplement.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseUnit' => ['Text'], - 'doseValue' => ['Number', 'QualitativeValue'], - 'frequency' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetPopulation' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', - 'doseValue' => 'The value of the dose, e.g. 500.', - 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReportedDoseScheduleTrait; + use DoseScheduleTrait; + use MedicalIntangibleTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReportedDoseSchedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReportedDoseSchedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DoseSchedule'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A patient-reported or observed dosing schedule for a drug or supplement.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseUnit' => ['Text'], + 'doseValue' => ['Number', 'QualitativeValue'], + 'frequency' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetPopulation' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'doseUnit' => 'The unit of the dose, e.g. \'mg\'.', + 'doseValue' => 'The value of the dose, e.g. 500.', + 'frequency' => 'How often the dose is taken, e.g. \'daily\'.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetPopulation' => 'Characteristics of the population for which this is intended, or which typically uses it, e.g. \'adults\'.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ResearchOrganization.php b/src/models/jsonld/ResearchOrganization.php index f78275f7e..0db795b46 100644 --- a/src/models/jsonld/ResearchOrganization.php +++ b/src/models/jsonld/ResearchOrganization.php @@ -23,254 +23,254 @@ */ class ResearchOrganization extends MetaJsonLd implements ResearchOrganizationInterface, OrganizationInterface, ThingInterface { - use ResearchOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use ResearchOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ResearchOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ResearchOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ResearchOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ResearchOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Research Organization (e.g. scientific institute, research company).'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Research Organization (e.g. scientific institute, research company).'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ResearchProject.php b/src/models/jsonld/ResearchProject.php index 6618fac5a..248e7dafd 100644 --- a/src/models/jsonld/ResearchProject.php +++ b/src/models/jsonld/ResearchProject.php @@ -23,255 +23,255 @@ */ class ResearchProject extends MetaJsonLd implements ResearchProjectInterface, ProjectInterface, OrganizationInterface, ThingInterface { - use ResearchProjectTrait; - use ProjectTrait; - use OrganizationTrait; - use ThingTrait; + use ResearchProjectTrait; + use ProjectTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ResearchProject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ResearchProject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ResearchProject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ResearchProject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Project'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Project'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Research project.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Research project.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Researcher.php b/src/models/jsonld/Researcher.php index 6c5331ab6..7ef85847e 100644 --- a/src/models/jsonld/Researcher.php +++ b/src/models/jsonld/Researcher.php @@ -23,127 +23,127 @@ */ class Researcher extends MetaJsonLd implements ResearcherInterface, AudienceInterface, IntangibleInterface, ThingInterface { - use ResearcherTrait; - use AudienceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Researcher'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Researcher'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Audience'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Researchers.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'audienceType' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'geographicArea' => ['AdministrativeArea'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', - 'description' => 'A description of the item.', - '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.', - 'geographicArea' => 'The geographic area associated with the audience.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ResearcherTrait; + use AudienceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Researcher'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Researcher'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Audience'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Researchers.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'audienceType' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'geographicArea' => ['AdministrativeArea'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'audienceType' => 'The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).', + 'description' => 'A description of the item.', + '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.', + 'geographicArea' => 'The geographic area associated with the audience.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Reservation.php b/src/models/jsonld/Reservation.php index 0bbb1510b..f3a7d540c 100644 --- a/src/models/jsonld/Reservation.php +++ b/src/models/jsonld/Reservation.php @@ -27,148 +27,148 @@ */ class Reservation extends MetaJsonLd implements ReservationInterface, IntangibleInterface, ThingInterface { - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Reservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Reservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Describes a reservation for travel, dining or an event. Some reservations require tickets. \n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, restaurant reservations, flights, or rental cars, use [[Offer]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Reservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Reservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Describes a reservation for travel, dining or an event. Some reservations require tickets. \n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, restaurant reservations, flights, or rental cars, use [[Offer]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReservationCancelled.php b/src/models/jsonld/ReservationCancelled.php index d67f89f1c..d4e682e7a 100644 --- a/src/models/jsonld/ReservationCancelled.php +++ b/src/models/jsonld/ReservationCancelled.php @@ -23,127 +23,127 @@ */ class ReservationCancelled extends MetaJsonLd implements ReservationCancelledInterface, ReservationStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReservationCancelledTrait; - use ReservationStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReservationCancelled'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReservationCancelled'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The status for a previously confirmed reservation that is now cancelled.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservationCancelledTrait; + use ReservationStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReservationCancelled'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReservationCancelled'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The status for a previously confirmed reservation that is now cancelled.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReservationConfirmed.php b/src/models/jsonld/ReservationConfirmed.php index 3e85547da..84843ee49 100644 --- a/src/models/jsonld/ReservationConfirmed.php +++ b/src/models/jsonld/ReservationConfirmed.php @@ -23,127 +23,127 @@ */ class ReservationConfirmed extends MetaJsonLd implements ReservationConfirmedInterface, ReservationStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReservationConfirmedTrait; - use ReservationStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReservationConfirmed'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReservationConfirmed'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The status of a confirmed reservation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservationConfirmedTrait; + use ReservationStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReservationConfirmed'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReservationConfirmed'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The status of a confirmed reservation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReservationHold.php b/src/models/jsonld/ReservationHold.php index cab57a6bb..91afa5be9 100644 --- a/src/models/jsonld/ReservationHold.php +++ b/src/models/jsonld/ReservationHold.php @@ -24,127 +24,127 @@ */ class ReservationHold extends MetaJsonLd implements ReservationHoldInterface, ReservationStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReservationHoldTrait; - use ReservationStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReservationHold'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReservationHold'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The status of a reservation on hold pending an update like credit card number or flight changes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservationHoldTrait; + use ReservationStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReservationHold'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReservationHold'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The status of a reservation on hold pending an update like credit card number or flight changes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReservationPackage.php b/src/models/jsonld/ReservationPackage.php index 743305b7a..db06335f6 100644 --- a/src/models/jsonld/ReservationPackage.php +++ b/src/models/jsonld/ReservationPackage.php @@ -24,151 +24,151 @@ */ class ReservationPackage extends MetaJsonLd implements ReservationPackageInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use ReservationPackageTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReservationPackage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReservationPackage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A group of multiple reservations with common values for all sub-reservations.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subReservation' => ['Reservation'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subReservation' => 'The individual reservations included in the package. Typically a repeated property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservationPackageTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReservationPackage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReservationPackage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A group of multiple reservations with common values for all sub-reservations.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subReservation' => ['Reservation'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subReservation' => 'The individual reservations included in the package. Typically a repeated property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReservationPending.php b/src/models/jsonld/ReservationPending.php index 40e953366..ebb259e08 100644 --- a/src/models/jsonld/ReservationPending.php +++ b/src/models/jsonld/ReservationPending.php @@ -24,127 +24,127 @@ */ class ReservationPending extends MetaJsonLd implements ReservationPendingInterface, ReservationStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReservationPendingTrait; - use ReservationStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReservationPending'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReservationPending'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReservationStatusType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The status of a reservation when a request has been sent, but not confirmed.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservationPendingTrait; + use ReservationStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReservationPending'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReservationPending'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReservationStatusType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The status of a reservation when a request has been sent, but not confirmed.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReservationStatusType.php b/src/models/jsonld/ReservationStatusType.php index 0ab85f88c..9fc874dfb 100644 --- a/src/models/jsonld/ReservationStatusType.php +++ b/src/models/jsonld/ReservationStatusType.php @@ -23,126 +23,126 @@ */ class ReservationStatusType extends MetaJsonLd implements ReservationStatusTypeInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReservationStatusTypeTrait; - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReservationStatusType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReservationStatusType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StatusEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerated status values for Reservation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservationStatusTypeTrait; + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReservationStatusType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReservationStatusType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StatusEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerated status values for Reservation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReserveAction.php b/src/models/jsonld/ReserveAction.php index de133c878..0a21a48f4 100644 --- a/src/models/jsonld/ReserveAction.php +++ b/src/models/jsonld/ReserveAction.php @@ -25,150 +25,150 @@ */ class ReserveAction extends MetaJsonLd implements ReserveActionInterface, PlanActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use ReserveActionTrait; - use PlanActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReserveAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReserveAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlanAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Reserving a concrete object.\n\nRelated actions:\n\n* [[ScheduleAction]]: Unlike ScheduleAction, ReserveAction reserves concrete objects (e.g. a table, a hotel) towards a time slot / spatial allocation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'scheduledTime' => ['DateTime'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'scheduledTime' => 'The time the object is scheduled to.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReserveActionTrait; + use PlanActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReserveAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReserveAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlanAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Reserving a concrete object.\n\nRelated actions:\n\n* [[ScheduleAction]]: Unlike ScheduleAction, ReserveAction reserves concrete objects (e.g. a table, a hotel) towards a time slot / spatial allocation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'scheduledTime' => ['DateTime'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'scheduledTime' => 'The time the object is scheduled to.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Reservoir.php b/src/models/jsonld/Reservoir.php index ec0b569bc..0b464aac3 100644 --- a/src/models/jsonld/Reservoir.php +++ b/src/models/jsonld/Reservoir.php @@ -24,214 +24,214 @@ */ class Reservoir extends MetaJsonLd implements ReservoirInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use ReservoirTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Reservoir'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Reservoir'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservoir of water, typically an artificially created lake, like the Lake Kariba reservoir.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReservoirTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Reservoir'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Reservoir'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservoir of water, typically an artificially created lake, like the Lake Kariba reservoir.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Residence.php b/src/models/jsonld/Residence.php index 9de7db1a3..c39172131 100644 --- a/src/models/jsonld/Residence.php +++ b/src/models/jsonld/Residence.php @@ -23,214 +23,214 @@ */ class Residence extends MetaJsonLd implements ResidenceInterface, PlaceInterface, ThingInterface { - use ResidenceTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Residence'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Residence'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The place where a person lives.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ResidenceTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Residence'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Residence'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The place where a person lives.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Resort.php b/src/models/jsonld/Resort.php index d186c072b..8180193e4 100644 --- a/src/models/jsonld/Resort.php +++ b/src/models/jsonld/Resort.php @@ -30,345 +30,345 @@ */ class Resort extends MetaJsonLd implements ResortInterface, LodgingBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ResortTrait; - use LodgingBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ResortTrait; + use LodgingBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Resort'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Resort'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Resort'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Resort'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LodgingBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LodgingBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A resort is a place used for relaxation or recreation, attracting visitors for holidays or vacations. Resorts are places, towns or sometimes commercial establishments operated by a single company (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Resort).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations.\n "; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A resort is a place used for relaxation or recreation, attracting visitors for holidays or vacations. Resorts are places, towns or sometimes commercial establishments operated by a single company (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Resort).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations.\n "; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RespiratoryTherapy.php b/src/models/jsonld/RespiratoryTherapy.php index 3ec10b2b4..592475a97 100644 --- a/src/models/jsonld/RespiratoryTherapy.php +++ b/src/models/jsonld/RespiratoryTherapy.php @@ -24,172 +24,172 @@ */ class RespiratoryTherapy extends MetaJsonLd implements RespiratoryTherapyInterface, MedicalTherapyInterface, TherapeuticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, MedicalEnumerationInterface { - use RespiratoryTherapyTrait; - use MedicalTherapyTrait; - use TherapeuticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RespiratoryTherapy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RespiratoryTherapy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTherapy'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The therapy that is concerned with the maintenance or improvement of respiratory function (as in patients with pulmonary disease).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'contraindication' => ['Text', 'MedicalContraindication'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'duplicateTherapy' => ['MedicalTherapy'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'seriousAdverseOutcome' => ['MedicalEntity'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'contraindication' => 'A contraindication for this therapy.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RespiratoryTherapyTrait; + use MedicalTherapyTrait; + use TherapeuticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RespiratoryTherapy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RespiratoryTherapy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTherapy'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The therapy that is concerned with the maintenance or improvement of respiratory function (as in patients with pulmonary disease).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'contraindication' => ['Text', 'MedicalContraindication'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'duplicateTherapy' => ['MedicalTherapy'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'seriousAdverseOutcome' => ['MedicalEntity'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'contraindication' => 'A contraindication for this therapy.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'duplicateTherapy' => 'A therapy that duplicates or overlaps this one.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'seriousAdverseOutcome' => 'A possible serious complication and/or serious side effect of this therapy. Serious adverse outcomes include those that are life-threatening; result in death, disability, or permanent damage; require hospitalization or prolong existing hospitalization; cause congenital anomalies or birth defects; or jeopardize the patient and may require medical or surgical intervention to prevent one of the outcomes in this definition.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Restaurant.php b/src/models/jsonld/Restaurant.php index c13cc8d3b..123be4e1f 100644 --- a/src/models/jsonld/Restaurant.php +++ b/src/models/jsonld/Restaurant.php @@ -23,341 +23,341 @@ */ class Restaurant extends MetaJsonLd implements RestaurantInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use RestaurantTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use RestaurantTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Restaurant'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Restaurant'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Restaurant'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Restaurant'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A restaurant.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A restaurant.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RestockingFees.php b/src/models/jsonld/RestockingFees.php index dc951f3da..6907473e4 100644 --- a/src/models/jsonld/RestockingFees.php +++ b/src/models/jsonld/RestockingFees.php @@ -24,126 +24,126 @@ */ class RestockingFees extends MetaJsonLd implements RestockingFeesInterface, ReturnFeesEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RestockingFeesTrait; - use ReturnFeesEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RestockingFees'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RestockingFees'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that the customer must pay a restocking fee when returning a product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RestockingFeesTrait; + use ReturnFeesEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RestockingFees'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RestockingFees'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that the customer must pay a restocking fee when returning a product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RestrictedDiet.php b/src/models/jsonld/RestrictedDiet.php index 0f28882aa..f0c0bc84d 100644 --- a/src/models/jsonld/RestrictedDiet.php +++ b/src/models/jsonld/RestrictedDiet.php @@ -24,125 +24,125 @@ */ class RestrictedDiet extends MetaJsonLd implements RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RestrictedDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RestrictedDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet restricted to certain foods or preparations for cultural, religious, health or lifestyle reasons. '; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RestrictedDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RestrictedDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet restricted to certain foods or preparations for cultural, religious, health or lifestyle reasons. '; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ResultsAvailable.php b/src/models/jsonld/ResultsAvailable.php index 395209a64..3e7ccce8b 100644 --- a/src/models/jsonld/ResultsAvailable.php +++ b/src/models/jsonld/ResultsAvailable.php @@ -23,127 +23,127 @@ */ class ResultsAvailable extends MetaJsonLd implements ResultsAvailableInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ResultsAvailableTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ResultsAvailable'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ResultsAvailable'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Results are available.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ResultsAvailableTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ResultsAvailable'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ResultsAvailable'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Results are available.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ResultsNotAvailable.php b/src/models/jsonld/ResultsNotAvailable.php index 2eabe6c6b..0c7014f3d 100644 --- a/src/models/jsonld/ResultsNotAvailable.php +++ b/src/models/jsonld/ResultsNotAvailable.php @@ -23,127 +23,127 @@ */ class ResultsNotAvailable extends MetaJsonLd implements ResultsNotAvailableInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ResultsNotAvailableTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ResultsNotAvailable'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ResultsNotAvailable'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Results are not available.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ResultsNotAvailableTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ResultsNotAvailable'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ResultsNotAvailable'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Results are not available.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ResumeAction.php b/src/models/jsonld/ResumeAction.php index 3defc0f81..34da5651a 100644 --- a/src/models/jsonld/ResumeAction.php +++ b/src/models/jsonld/ResumeAction.php @@ -24,147 +24,147 @@ */ class ResumeAction extends MetaJsonLd implements ResumeActionInterface, ControlActionInterface, ActionInterface, ThingInterface { - use ResumeActionTrait; - use ControlActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ResumeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ResumeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of resuming a device or application which was formerly paused (e.g. resume music playback or resume a timer).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ResumeActionTrait; + use ControlActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ResumeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ResumeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of resuming a device or application which was formerly paused (e.g. resume music playback or resume a timer).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Retail.php b/src/models/jsonld/Retail.php index 8907141fe..ca6c0e3ab 100644 --- a/src/models/jsonld/Retail.php +++ b/src/models/jsonld/Retail.php @@ -23,127 +23,127 @@ */ class Retail extends MetaJsonLd implements RetailInterface, DrugCostCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RetailTrait; - use DrugCostCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Retail'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Retail'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugCostCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The drug\'s cost represents the retail cost of the drug.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RetailTrait; + use DrugCostCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Retail'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Retail'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugCostCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The drug\'s cost represents the retail cost of the drug.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnAction.php b/src/models/jsonld/ReturnAction.php index a61ab0b9c..dd3c37a5e 100644 --- a/src/models/jsonld/ReturnAction.php +++ b/src/models/jsonld/ReturnAction.php @@ -24,153 +24,153 @@ */ class ReturnAction extends MetaJsonLd implements ReturnActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use ReturnActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of returning to the origin that which was previously received (concrete objects) or taken (ownership).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of returning to the origin that which was previously received (concrete objects) or taken (ownership).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnAtKiosk.php b/src/models/jsonld/ReturnAtKiosk.php index 3dd8b4ba1..34b2658f1 100644 --- a/src/models/jsonld/ReturnAtKiosk.php +++ b/src/models/jsonld/ReturnAtKiosk.php @@ -23,126 +23,126 @@ */ class ReturnAtKiosk extends MetaJsonLd implements ReturnAtKioskInterface, ReturnMethodEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnAtKioskTrait; - use ReturnMethodEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnAtKiosk'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnAtKiosk'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that product returns must be made at a kiosk.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnAtKioskTrait; + use ReturnMethodEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnAtKiosk'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnAtKiosk'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that product returns must be made at a kiosk.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnByMail.php b/src/models/jsonld/ReturnByMail.php index 9213d9962..2bed40b14 100644 --- a/src/models/jsonld/ReturnByMail.php +++ b/src/models/jsonld/ReturnByMail.php @@ -23,126 +23,126 @@ */ class ReturnByMail extends MetaJsonLd implements ReturnByMailInterface, ReturnMethodEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnByMailTrait; - use ReturnMethodEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnByMail'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnByMail'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that product returns must be done by mail.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnByMailTrait; + use ReturnMethodEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnByMail'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnByMail'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that product returns must be done by mail.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnFeesCustomerResponsibility.php b/src/models/jsonld/ReturnFeesCustomerResponsibility.php index f9160a822..27d671899 100644 --- a/src/models/jsonld/ReturnFeesCustomerResponsibility.php +++ b/src/models/jsonld/ReturnFeesCustomerResponsibility.php @@ -24,126 +24,126 @@ */ class ReturnFeesCustomerResponsibility extends MetaJsonLd implements ReturnFeesCustomerResponsibilityInterface, ReturnFeesEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnFeesCustomerResponsibilityTrait; - use ReturnFeesEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnFeesCustomerResponsibility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnFeesCustomerResponsibility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that product returns must be paid for, and are the responsibility of, the customer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnFeesCustomerResponsibilityTrait; + use ReturnFeesEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnFeesCustomerResponsibility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnFeesCustomerResponsibility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that product returns must be paid for, and are the responsibility of, the customer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnFeesEnumeration.php b/src/models/jsonld/ReturnFeesEnumeration.php index 39fa42ebe..530f08c15 100644 --- a/src/models/jsonld/ReturnFeesEnumeration.php +++ b/src/models/jsonld/ReturnFeesEnumeration.php @@ -23,125 +23,125 @@ */ class ReturnFeesEnumeration extends MetaJsonLd implements ReturnFeesEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnFeesEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnFeesEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates several kinds of policies for product return fees.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnFeesEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnFeesEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates several kinds of policies for product return fees.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnInStore.php b/src/models/jsonld/ReturnInStore.php index 837a28675..e9125c6c2 100644 --- a/src/models/jsonld/ReturnInStore.php +++ b/src/models/jsonld/ReturnInStore.php @@ -23,126 +23,126 @@ */ class ReturnInStore extends MetaJsonLd implements ReturnInStoreInterface, ReturnMethodEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnInStoreTrait; - use ReturnMethodEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnInStore'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnInStore'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that product returns must be made in a store.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnInStoreTrait; + use ReturnMethodEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnInStore'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnInStore'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that product returns must be made in a store.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnLabelCustomerResponsibility.php b/src/models/jsonld/ReturnLabelCustomerResponsibility.php index 059dc9644..8dba90325 100644 --- a/src/models/jsonld/ReturnLabelCustomerResponsibility.php +++ b/src/models/jsonld/ReturnLabelCustomerResponsibility.php @@ -24,126 +24,126 @@ */ class ReturnLabelCustomerResponsibility extends MetaJsonLd implements ReturnLabelCustomerResponsibilityInterface, ReturnLabelSourceEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnLabelCustomerResponsibilityTrait; - use ReturnLabelSourceEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnLabelCustomerResponsibility'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnLabelCustomerResponsibility'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicated that creating a return label is the responsibility of the customer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnLabelCustomerResponsibilityTrait; + use ReturnLabelSourceEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnLabelCustomerResponsibility'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnLabelCustomerResponsibility'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicated that creating a return label is the responsibility of the customer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnLabelDownloadAndPrint.php b/src/models/jsonld/ReturnLabelDownloadAndPrint.php index 4b64c1a7d..e509a3d8d 100644 --- a/src/models/jsonld/ReturnLabelDownloadAndPrint.php +++ b/src/models/jsonld/ReturnLabelDownloadAndPrint.php @@ -24,126 +24,126 @@ */ class ReturnLabelDownloadAndPrint extends MetaJsonLd implements ReturnLabelDownloadAndPrintInterface, ReturnLabelSourceEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnLabelDownloadAndPrintTrait; - use ReturnLabelSourceEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnLabelDownloadAndPrint'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnLabelDownloadAndPrint'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicated that a return label must be downloaded and printed by the customer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnLabelDownloadAndPrintTrait; + use ReturnLabelSourceEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnLabelDownloadAndPrint'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnLabelDownloadAndPrint'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicated that a return label must be downloaded and printed by the customer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnLabelInBox.php b/src/models/jsonld/ReturnLabelInBox.php index fc43a9184..a08bee2d8 100644 --- a/src/models/jsonld/ReturnLabelInBox.php +++ b/src/models/jsonld/ReturnLabelInBox.php @@ -24,126 +24,126 @@ */ class ReturnLabelInBox extends MetaJsonLd implements ReturnLabelInBoxInterface, ReturnLabelSourceEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnLabelInBoxTrait; - use ReturnLabelSourceEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnLabelInBox'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnLabelInBox'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that a return label will be provided by the seller in the shipping box.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnLabelInBoxTrait; + use ReturnLabelSourceEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnLabelInBox'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnLabelInBox'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that a return label will be provided by the seller in the shipping box.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnLabelSourceEnumeration.php b/src/models/jsonld/ReturnLabelSourceEnumeration.php index 846dfde7f..4fbca569b 100644 --- a/src/models/jsonld/ReturnLabelSourceEnumeration.php +++ b/src/models/jsonld/ReturnLabelSourceEnumeration.php @@ -23,125 +23,125 @@ */ class ReturnLabelSourceEnumeration extends MetaJsonLd implements ReturnLabelSourceEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnLabelSourceEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnLabelSourceEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates several types of return labels for product returns.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnLabelSourceEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnLabelSourceEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates several types of return labels for product returns.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnMethodEnumeration.php b/src/models/jsonld/ReturnMethodEnumeration.php index 754385246..48e12c65b 100644 --- a/src/models/jsonld/ReturnMethodEnumeration.php +++ b/src/models/jsonld/ReturnMethodEnumeration.php @@ -23,125 +23,125 @@ */ class ReturnMethodEnumeration extends MetaJsonLd implements ReturnMethodEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnMethodEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnMethodEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnMethodEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates several types of product return methods.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnMethodEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnMethodEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnMethodEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates several types of product return methods.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReturnShippingFees.php b/src/models/jsonld/ReturnShippingFees.php index 9e8499625..72c477c76 100644 --- a/src/models/jsonld/ReturnShippingFees.php +++ b/src/models/jsonld/ReturnShippingFees.php @@ -24,126 +24,126 @@ */ class ReturnShippingFees extends MetaJsonLd implements ReturnShippingFeesInterface, ReturnFeesEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ReturnShippingFeesTrait; - use ReturnFeesEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReturnShippingFees'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReturnShippingFees'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReturnFeesEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that the customer must pay the return shipping costs when returning a product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReturnShippingFeesTrait; + use ReturnFeesEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReturnShippingFees'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReturnShippingFees'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReturnFeesEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that the customer must pay the return shipping costs when returning a product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Review.php b/src/models/jsonld/Review.php index 2ed7686b9..f6a9b91af 100644 --- a/src/models/jsonld/Review.php +++ b/src/models/jsonld/Review.php @@ -23,364 +23,364 @@ */ class Review extends MetaJsonLd implements ReviewInterface, CreativeWorkInterface, ThingInterface { - use ReviewTrait; - use CreativeWorkTrait; - use ThingTrait; + use ReviewTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Review'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Review'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Review'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Review'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A review of an item - for example, of a restaurant, movie, or store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A review of an item - for example, of a restaurant, movie, or store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ReviewAction.php b/src/models/jsonld/ReviewAction.php index 5ee123cde..557e485c3 100644 --- a/src/models/jsonld/ReviewAction.php +++ b/src/models/jsonld/ReviewAction.php @@ -24,149 +24,149 @@ */ class ReviewAction extends MetaJsonLd implements ReviewActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use ReviewActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReviewAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReviewAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AssessAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of producing a balanced opinion about the object for an audience. An agent reviews an object with participants resulting in a review.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'resultReview' => ['Review'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - 'resultReview' => 'A sub property of result. The review that resulted in the performing of the action.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ReviewActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReviewAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReviewAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AssessAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of producing a balanced opinion about the object for an audience. An agent reviews an object with participants resulting in a review.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'resultReview' => ['Review'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + 'resultReview' => 'A sub property of result. The review that resulted in the performing of the action.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ReviewNewsArticle.php b/src/models/jsonld/ReviewNewsArticle.php index 1bcc15145..5d5d9f4a1 100644 --- a/src/models/jsonld/ReviewNewsArticle.php +++ b/src/models/jsonld/ReviewNewsArticle.php @@ -25,394 +25,394 @@ */ class ReviewNewsArticle extends MetaJsonLd implements ReviewNewsArticleInterface, NewsArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface, CriticReviewInterface, ReviewInterface { - use ReviewNewsArticleTrait; - use NewsArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; - use CriticReviewTrait; - use ReviewTrait; + use ReviewNewsArticleTrait; + use NewsArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; + use CriticReviewTrait; + use ReviewTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ReviewNewsArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ReviewNewsArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ReviewNewsArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ReviewNewsArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NewsArticle'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NewsArticle'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A [[NewsArticle]] and [[CriticReview]] providing a professional critic\'s assessment of a service, product, performance, or artistic or literary work.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A [[NewsArticle]] and [[CriticReview]] providing a professional critic\'s assessment of a service, product, performance, or artistic or literary work.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dateline' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'printColumn' => ['Text'], - 'printEdition' => ['Text'], - 'printPage' => ['Text'], - 'printSection' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dateline' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'printColumn' => ['Text'], + 'printEdition' => ['Text'], + 'printPage' => ['Text'], + 'printSection' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', - 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', - 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', - 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dateline' => 'A [dateline](https://en.wikipedia.org/wiki/Dateline) is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted. Sometimes only a placename is provided. Structured representations of dateline-related information can also be expressed more explicitly using [[locationCreated]] (which represents where a work was created, e.g. where a news report was written). For location depicted or described in the content, use [[contentLocation]]. Dateline summaries are oriented more towards human readers than towards automated processing, and can vary substantially. Some examples: "BEIRUT, Lebanon, June 2.", "Paris, France", "December 19, 2017 11:43AM Reporting from Washington", "Beijing/Moscow", "QUEZON CITY, Philippines". ', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'printColumn' => 'The number of the column in which the NewsArticle appears in the print edition.', + 'printEdition' => 'The edition of the print product in which the NewsArticle appears.', + 'printPage' => 'If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).', + 'printSection' => 'If this NewsArticle appears in print, this field indicates the print section in which the article appeared.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Rheumatologic.php b/src/models/jsonld/Rheumatologic.php index c4229e68d..6674af213 100644 --- a/src/models/jsonld/Rheumatologic.php +++ b/src/models/jsonld/Rheumatologic.php @@ -24,128 +24,128 @@ */ class Rheumatologic extends MetaJsonLd implements RheumatologicInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use RheumatologicTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Rheumatologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Rheumatologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that deals with the study and treatment of rheumatic, autoimmune or joint diseases.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RheumatologicTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Rheumatologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Rheumatologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that deals with the study and treatment of rheumatic, autoimmune or joint diseases.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RightHandDriving.php b/src/models/jsonld/RightHandDriving.php index a28adaefc..2a3355e95 100644 --- a/src/models/jsonld/RightHandDriving.php +++ b/src/models/jsonld/RightHandDriving.php @@ -24,143 +24,143 @@ */ class RightHandDriving extends MetaJsonLd implements RightHandDrivingInterface, SteeringPositionValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RightHandDrivingTrait; - use SteeringPositionValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RightHandDriving'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RightHandDriving'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SteeringPositionValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The steering position is on the right side of the vehicle (viewed from the main direction of driving).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RightHandDrivingTrait; + use SteeringPositionValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RightHandDriving'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RightHandDriving'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SteeringPositionValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The steering position is on the right side of the vehicle (viewed from the main direction of driving).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RisksOrComplicationsHealthAspect.php b/src/models/jsonld/RisksOrComplicationsHealthAspect.php index de6da5dd5..0c1d33aed 100644 --- a/src/models/jsonld/RisksOrComplicationsHealthAspect.php +++ b/src/models/jsonld/RisksOrComplicationsHealthAspect.php @@ -24,126 +24,126 @@ */ class RisksOrComplicationsHealthAspect extends MetaJsonLd implements RisksOrComplicationsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RisksOrComplicationsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RisksOrComplicationsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RisksOrComplicationsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Information about the risk factors and possible complications that may follow a topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RisksOrComplicationsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RisksOrComplicationsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RisksOrComplicationsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Information about the risk factors and possible complications that may follow a topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RiverBodyOfWater.php b/src/models/jsonld/RiverBodyOfWater.php index 223ad2e88..ca8870630 100644 --- a/src/models/jsonld/RiverBodyOfWater.php +++ b/src/models/jsonld/RiverBodyOfWater.php @@ -23,214 +23,214 @@ */ class RiverBodyOfWater extends MetaJsonLd implements RiverBodyOfWaterInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use RiverBodyOfWaterTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RiverBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RiverBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A river (for example, the broad majestic Shannon).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RiverBodyOfWaterTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RiverBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RiverBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A river (for example, the broad majestic Shannon).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Role.php b/src/models/jsonld/Role.php index 3ce1fe838..d9d39a934 100644 --- a/src/models/jsonld/Role.php +++ b/src/models/jsonld/Role.php @@ -29,130 +29,130 @@ */ class Role extends MetaJsonLd implements RoleInterface, IntangibleInterface, ThingInterface { - use RoleTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Role'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Role'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents additional information about a relationship or property. For example a Role can be used to say that a \'member\' role linking some SportsTeam to a player occurred during a particular time period. Or that a Person\'s \'actor\' role in a Movie was for some particular characterName. Such properties can be attached to a Role entity, which is then associated with the main entities using ordinary properties like \'member\' or \'actor\'.\n\nSee also [blog post](http://blog.schema.org/2014/06/introducing-role.html).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'namedPosition' => ['Text', 'URL'], - 'potentialAction' => ['Action'], - 'roleName' => ['Text', 'URL'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RoleTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Role'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Role'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents additional information about a relationship or property. For example a Role can be used to say that a \'member\' role linking some SportsTeam to a player occurred during a particular time period. Or that a Person\'s \'actor\' role in a Movie was for some particular characterName. Such properties can be attached to a Role entity, which is then associated with the main entities using ordinary properties like \'member\' or \'actor\'.\n\nSee also [blog post](http://blog.schema.org/2014/06/introducing-role.html).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'namedPosition' => ['Text', 'URL'], + 'potentialAction' => ['Action'], + 'roleName' => ['Text', 'URL'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'namedPosition' => 'A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'roleName' => 'A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named \'inker\', \'penciller\', and \'letterer\'; or an athlete in a SportsTeam might play in the position named \'Quarterback\'.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RoofingContractor.php b/src/models/jsonld/RoofingContractor.php index 666b654cd..f5d53e7af 100644 --- a/src/models/jsonld/RoofingContractor.php +++ b/src/models/jsonld/RoofingContractor.php @@ -23,331 +23,331 @@ */ class RoofingContractor extends MetaJsonLd implements RoofingContractorInterface, HomeAndConstructionBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use RoofingContractorTrait; - use HomeAndConstructionBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use RoofingContractorTrait; + use HomeAndConstructionBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RoofingContractor'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RoofingContractor'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RoofingContractor'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RoofingContractor'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HomeAndConstructionBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A roofing contractor.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A roofing contractor.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Room.php b/src/models/jsonld/Room.php index 4e50f3b39..0595a78c7 100644 --- a/src/models/jsonld/Room.php +++ b/src/models/jsonld/Room.php @@ -28,239 +28,239 @@ */ class Room extends MetaJsonLd implements RoomInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use RoomTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use RoomTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Room'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Room'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Room'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Room'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A room is a distinguishable space within a structure, usually separated from other spaces by interior walls (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Room).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A room is a distinguishable space within a structure, usually separated from other spaces by interior walls (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Room).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/RsvpAction.php b/src/models/jsonld/RsvpAction.php index 7da7cd59f..c35d8b259 100644 --- a/src/models/jsonld/RsvpAction.php +++ b/src/models/jsonld/RsvpAction.php @@ -24,165 +24,165 @@ */ class RsvpAction extends MetaJsonLd implements RsvpActionInterface, InformActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use RsvpActionTrait; - use InformActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RsvpAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RsvpAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InformAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of notifying an event organizer as to whether you expect to attend the event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalNumberOfGuests' => ['Number'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'comment' => ['Comment'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'event' => ['Event'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'rsvpResponse' => ['RsvpResponseType'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - 'additionalNumberOfGuests' => 'If responding yes, the number of guests who will attend in addition to the invitee.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'comment' => 'Comments, typically from users.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - 'rsvpResponse' => 'The response (yes, no, maybe) to the RSVP.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RsvpActionTrait; + use InformActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RsvpAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RsvpAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InformAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of notifying an event organizer as to whether you expect to attend the event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalNumberOfGuests' => ['Number'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'comment' => ['Comment'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'event' => ['Event'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'rsvpResponse' => ['RsvpResponseType'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + 'additionalNumberOfGuests' => 'If responding yes, the number of guests who will attend in addition to the invitee.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'comment' => 'Comments, typically from users.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + 'rsvpResponse' => 'The response (yes, no, maybe) to the RSVP.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RsvpResponseMaybe.php b/src/models/jsonld/RsvpResponseMaybe.php index 0b49b04b0..8529ba392 100644 --- a/src/models/jsonld/RsvpResponseMaybe.php +++ b/src/models/jsonld/RsvpResponseMaybe.php @@ -23,126 +23,126 @@ */ class RsvpResponseMaybe extends MetaJsonLd implements RsvpResponseMaybeInterface, RsvpResponseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RsvpResponseMaybeTrait; - use RsvpResponseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RsvpResponseMaybe'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RsvpResponseMaybe'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RsvpResponseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The invitee may or may not attend.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RsvpResponseMaybeTrait; + use RsvpResponseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RsvpResponseMaybe'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RsvpResponseMaybe'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RsvpResponseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The invitee may or may not attend.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RsvpResponseNo.php b/src/models/jsonld/RsvpResponseNo.php index 4b10bc553..9dd25eae8 100644 --- a/src/models/jsonld/RsvpResponseNo.php +++ b/src/models/jsonld/RsvpResponseNo.php @@ -23,126 +23,126 @@ */ class RsvpResponseNo extends MetaJsonLd implements RsvpResponseNoInterface, RsvpResponseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RsvpResponseNoTrait; - use RsvpResponseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RsvpResponseNo'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RsvpResponseNo'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RsvpResponseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The invitee will not attend.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RsvpResponseNoTrait; + use RsvpResponseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RsvpResponseNo'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RsvpResponseNo'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RsvpResponseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The invitee will not attend.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RsvpResponseType.php b/src/models/jsonld/RsvpResponseType.php index 12c955cf3..2cd521860 100644 --- a/src/models/jsonld/RsvpResponseType.php +++ b/src/models/jsonld/RsvpResponseType.php @@ -24,125 +24,125 @@ */ class RsvpResponseType extends MetaJsonLd implements RsvpResponseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RsvpResponseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RsvpResponseType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RsvpResponseType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'RsvpResponseType is an enumeration type whose instances represent responding to an RSVP request.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RsvpResponseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RsvpResponseType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RsvpResponseType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'RsvpResponseType is an enumeration type whose instances represent responding to an RSVP request.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/RsvpResponseYes.php b/src/models/jsonld/RsvpResponseYes.php index c57fb7d78..453a5fdaf 100644 --- a/src/models/jsonld/RsvpResponseYes.php +++ b/src/models/jsonld/RsvpResponseYes.php @@ -23,126 +23,126 @@ */ class RsvpResponseYes extends MetaJsonLd implements RsvpResponseYesInterface, RsvpResponseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use RsvpResponseYesTrait; - use RsvpResponseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'RsvpResponseYes'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/RsvpResponseYes'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RsvpResponseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The invitee will attend.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use RsvpResponseYesTrait; + use RsvpResponseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'RsvpResponseYes'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/RsvpResponseYes'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RsvpResponseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The invitee will attend.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SRP.php b/src/models/jsonld/SRP.php index 9ba77aa59..a67f0fd67 100644 --- a/src/models/jsonld/SRP.php +++ b/src/models/jsonld/SRP.php @@ -23,126 +23,126 @@ */ class SRP extends MetaJsonLd implements SRPInterface, PriceTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SRPTrait; - use PriceTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SRP'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SRP'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the suggested retail price ("SRP") of an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SRPTrait; + use PriceTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SRP'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SRP'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the suggested retail price ("SRP") of an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SafetyHealthAspect.php b/src/models/jsonld/SafetyHealthAspect.php index 572fd6f19..caf5f2644 100644 --- a/src/models/jsonld/SafetyHealthAspect.php +++ b/src/models/jsonld/SafetyHealthAspect.php @@ -23,126 +23,126 @@ */ class SafetyHealthAspect extends MetaJsonLd implements SafetyHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SafetyHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SafetyHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SafetyHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about the safety-related aspects of a health topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SafetyHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SafetyHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SafetyHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about the safety-related aspects of a health topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SaleEvent.php b/src/models/jsonld/SaleEvent.php index 6edd806c1..d4aa28c7d 100644 --- a/src/models/jsonld/SaleEvent.php +++ b/src/models/jsonld/SaleEvent.php @@ -23,204 +23,204 @@ */ class SaleEvent extends MetaJsonLd implements SaleEventInterface, EventInterface, ThingInterface { - use SaleEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SaleEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SaleEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Sales event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SaleEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SaleEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SaleEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Sales event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SalePrice.php b/src/models/jsonld/SalePrice.php index 1e4dd9a1a..674af6ec4 100644 --- a/src/models/jsonld/SalePrice.php +++ b/src/models/jsonld/SalePrice.php @@ -24,126 +24,126 @@ */ class SalePrice extends MetaJsonLd implements SalePriceInterface, PriceTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SalePriceTrait; - use PriceTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SalePrice'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SalePrice'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents a sale price (usually active for a limited period) of an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SalePriceTrait; + use PriceTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SalePrice'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SalePrice'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents a sale price (usually active for a limited period) of an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SatireOrParodyContent.php b/src/models/jsonld/SatireOrParodyContent.php index 80cb0dbc9..07650d9e1 100644 --- a/src/models/jsonld/SatireOrParodyContent.php +++ b/src/models/jsonld/SatireOrParodyContent.php @@ -40,126 +40,126 @@ */ class SatireOrParodyContent extends MetaJsonLd implements SatireOrParodyContentInterface, MediaManipulationRatingEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SatireOrParodyContentTrait; - use MediaManipulationRatingEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SatireOrParodyContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SatireOrParodyContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Content coded 'satire or parody content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'satire or parody content': A video that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)\n\nFor an [[ImageObject]] to be 'satire or parody content': An image that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)\n\nFor an [[ImageObject]] with embedded text to be 'satire or parody content': An image that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)\n\nFor an [[AudioObject]] to be 'satire or parody content': Audio that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)"; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SatireOrParodyContentTrait; + use MediaManipulationRatingEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SatireOrParodyContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SatireOrParodyContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Content coded 'satire or parody content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'satire or parody content': A video that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)\n\nFor an [[ImageObject]] to be 'satire or parody content': An image that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)\n\nFor an [[ImageObject]] with embedded text to be 'satire or parody content': An image that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)\n\nFor an [[AudioObject]] to be 'satire or parody content': Audio that was created as political or humorous commentary and is presented in that context. (Reshares of satire/parody content that do not include relevant context are more likely to fall under the “missing context” rating.)"; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SatiricalArticle.php b/src/models/jsonld/SatiricalArticle.php index 148d70299..beddfe00c 100644 --- a/src/models/jsonld/SatiricalArticle.php +++ b/src/models/jsonld/SatiricalArticle.php @@ -27,363 +27,363 @@ */ class SatiricalArticle extends MetaJsonLd implements SatiricalArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use SatiricalArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use SatiricalArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SatiricalArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SatiricalArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SatiricalArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SatiricalArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An [[Article]] whose content is primarily [[satirical]](https://en.wikipedia.org/wiki/Satire) in nature, i.e. unlikely to be literally true. A satirical article is sometimes but not necessarily also a [[NewsArticle]]. [[ScholarlyArticle]]s are also sometimes satirized.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An [[Article]] whose content is primarily [[satirical]](https://en.wikipedia.org/wiki/Satire) in nature, i.e. unlikely to be literally true. A satirical article is sometimes but not necessarily also a [[NewsArticle]]. [[ScholarlyArticle]]s are also sometimes satirized.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Saturday.php b/src/models/jsonld/Saturday.php index f99fc644f..47262f447 100644 --- a/src/models/jsonld/Saturday.php +++ b/src/models/jsonld/Saturday.php @@ -23,126 +23,126 @@ */ class Saturday extends MetaJsonLd implements SaturdayInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SaturdayTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Saturday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Saturday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The day of the week between Friday and Sunday.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SaturdayTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Saturday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Saturday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The day of the week between Friday and Sunday.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Schedule.php b/src/models/jsonld/Schedule.php index 26105d4b6..fc77c103c 100644 --- a/src/models/jsonld/Schedule.php +++ b/src/models/jsonld/Schedule.php @@ -30,148 +30,148 @@ */ class Schedule extends MetaJsonLd implements ScheduleInterface, IntangibleInterface, ThingInterface { - use ScheduleTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Schedule'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Schedule'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A schedule defines a repeating time period used to describe a regularly occurring [[Event]]. At a minimum a schedule will specify [[repeatFrequency]] which describes the interval between occurrences of the event. Additional information can be provided to specify the schedule more precisely.\n This includes identifying the day(s) of the week or month when the recurring event will take place, in addition to its start and end time. Schedules may also\n have start and end dates to indicate when they are active, e.g. to define a limited calendar of events."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'byDay' => ['Text', 'DayOfWeek'], - 'byMonth' => ['Integer'], - 'byMonthDay' => ['Integer'], - 'byMonthWeek' => ['Integer'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'endTime' => ['DateTime', 'Time'], - 'exceptDate' => ['DateTime', 'Date'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'repeatCount' => ['Integer'], - 'repeatFrequency' => ['Text', 'Duration'], - 'sameAs' => ['URL'], - 'scheduleTimezone' => ['Text'], - 'startDate' => ['DateTime', 'Date'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'byDay' => 'Defines the day(s) of the week on which a recurring [[Event]] takes place. May be specified using either [[DayOfWeek]], or alternatively [[Text]] conforming to iCal\'s syntax for byDay recurrence rules.', - 'byMonth' => 'Defines the month(s) of the year on which a recurring [[Event]] takes place. Specified as an [[Integer]] between 1-12. January is 1.', - 'byMonthDay' => 'Defines the day(s) of the month on which a recurring [[Event]] takes place. Specified as an [[Integer]] between 1-31.', - 'byMonthWeek' => 'Defines the week(s) of the month on which a recurring Event takes place. Specified as an Integer between 1-5. For clarity, byMonthWeek is best used in conjunction with byDay to indicate concepts like the first and third Mondays of a month.', - 'description' => 'A description of the item.', - '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.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exceptDate' => 'Defines a [[Date]] or [[DateTime]] during which a scheduled [[Event]] will not take place. The property allows exceptions to a [[Schedule]] to be specified. If an exception is specified as a [[DateTime]] then only the event that would have started at that specific date and time should be excluded from the schedule. If an exception is specified as a [[Date]] then any event that is scheduled for that 24 hour period should be excluded from the schedule. This allows a whole day to be excluded from the schedule without having to itemise every scheduled event.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'repeatCount' => 'Defines the number of times a recurring [[Event]] will take place.', - 'repeatFrequency' => 'Defines the frequency at which [[Event]]s will occur according to a schedule [[Schedule]]. The intervals between events should be defined as a [[Duration]] of time.', - '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.', - 'scheduleTimezone' => 'Indicates the timezone for which the time(s) indicated in the [[Schedule]] are given. The value provided should be among those listed in the IANA Time Zone Database.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ScheduleTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Schedule'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Schedule'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A schedule defines a repeating time period used to describe a regularly occurring [[Event]]. At a minimum a schedule will specify [[repeatFrequency]] which describes the interval between occurrences of the event. Additional information can be provided to specify the schedule more precisely.\n This includes identifying the day(s) of the week or month when the recurring event will take place, in addition to its start and end time. Schedules may also\n have start and end dates to indicate when they are active, e.g. to define a limited calendar of events."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'byDay' => ['Text', 'DayOfWeek'], + 'byMonth' => ['Integer'], + 'byMonthDay' => ['Integer'], + 'byMonthWeek' => ['Integer'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'endTime' => ['DateTime', 'Time'], + 'exceptDate' => ['DateTime', 'Date'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'repeatCount' => ['Integer'], + 'repeatFrequency' => ['Text', 'Duration'], + 'sameAs' => ['URL'], + 'scheduleTimezone' => ['Text'], + 'startDate' => ['DateTime', 'Date'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'byDay' => 'Defines the day(s) of the week on which a recurring [[Event]] takes place. May be specified using either [[DayOfWeek]], or alternatively [[Text]] conforming to iCal\'s syntax for byDay recurrence rules.', + 'byMonth' => 'Defines the month(s) of the year on which a recurring [[Event]] takes place. Specified as an [[Integer]] between 1-12. January is 1.', + 'byMonthDay' => 'Defines the day(s) of the month on which a recurring [[Event]] takes place. Specified as an [[Integer]] between 1-31.', + 'byMonthWeek' => 'Defines the week(s) of the month on which a recurring Event takes place. Specified as an Integer between 1-5. For clarity, byMonthWeek is best used in conjunction with byDay to indicate concepts like the first and third Mondays of a month.', + 'description' => 'A description of the item.', + '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.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exceptDate' => 'Defines a [[Date]] or [[DateTime]] during which a scheduled [[Event]] will not take place. The property allows exceptions to a [[Schedule]] to be specified. If an exception is specified as a [[DateTime]] then only the event that would have started at that specific date and time should be excluded from the schedule. If an exception is specified as a [[Date]] then any event that is scheduled for that 24 hour period should be excluded from the schedule. This allows a whole day to be excluded from the schedule without having to itemise every scheduled event.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'repeatCount' => 'Defines the number of times a recurring [[Event]] will take place.', + 'repeatFrequency' => 'Defines the frequency at which [[Event]]s will occur according to a schedule [[Schedule]]. The intervals between events should be defined as a [[Duration]] of time.', + '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.', + 'scheduleTimezone' => 'Indicates the timezone for which the time(s) indicated in the [[Schedule]] are given. The value provided should be among those listed in the IANA Time Zone Database.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ScheduleAction.php b/src/models/jsonld/ScheduleAction.php index 89fa2314d..daacec873 100644 --- a/src/models/jsonld/ScheduleAction.php +++ b/src/models/jsonld/ScheduleAction.php @@ -26,150 +26,150 @@ */ class ScheduleAction extends MetaJsonLd implements ScheduleActionInterface, PlanActionInterface, OrganizeActionInterface, ActionInterface, ThingInterface { - use ScheduleActionTrait; - use PlanActionTrait; - use OrganizeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ScheduleAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ScheduleAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlanAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Scheduling future actions, events, or tasks.\n\nRelated actions:\n\n* [[ReserveAction]]: Unlike ReserveAction, ScheduleAction allocates future actions (e.g. an event, a task, etc) towards a time slot / spatial allocation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'scheduledTime' => ['DateTime'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'scheduledTime' => 'The time the object is scheduled to.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ScheduleActionTrait; + use PlanActionTrait; + use OrganizeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ScheduleAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ScheduleAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlanAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Scheduling future actions, events, or tasks.\n\nRelated actions:\n\n* [[ReserveAction]]: Unlike ReserveAction, ScheduleAction allocates future actions (e.g. an event, a task, etc) towards a time slot / spatial allocation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'scheduledTime' => ['DateTime'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'scheduledTime' => 'The time the object is scheduled to.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Schema3DModel.php b/src/models/jsonld/Schema3DModel.php index 125c0de99..093001aa8 100644 --- a/src/models/jsonld/Schema3DModel.php +++ b/src/models/jsonld/Schema3DModel.php @@ -31,385 +31,385 @@ */ class Schema3DModel extends MetaJsonLd implements Schema3DModelInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use Schema3DModelTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use Schema3DModelTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = '3DModel'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = '3DModel'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/3DModel'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/3DModel'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A 3D model represents some kind of 3D content, which may have [[encoding]]s in one or more [[MediaObject]]s. Many 3D formats are available (e.g. see [Wikipedia](https://en.wikipedia.org/wiki/Category:3D_graphics_file_formats)); specific encoding formats can be represented using the [[encodingFormat]] property applied to the relevant [[MediaObject]]. For the\ncase of a single file published after Zip compression, the convention of appending '+zip' to the [[encodingFormat]] can be used. Geospatial, AR/VR, artistic/animation, gaming, engineering and scientific content can all be represented using [[3DModel]]."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A 3D model represents some kind of 3D content, which may have [[encoding]]s in one or more [[MediaObject]]s. Many 3D formats are available (e.g. see [Wikipedia](https://en.wikipedia.org/wiki/Category:3D_graphics_file_formats)); specific encoding formats can be represented using the [[encodingFormat]] property applied to the relevant [[MediaObject]]. For the\ncase of a single file published after Zip compression, the convention of appending '+zip' to the [[encodingFormat]] can be used. Geospatial, AR/VR, artistic/animation, gaming, engineering and scientific content can all be represented using [[3DModel]]."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'isResizable' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'isResizable' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'isResizable' => 'Whether the 3DModel allows resizing. For example, room layout applications often do not allow 3DModel elements to be resized to reflect reality.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'isResizable' => 'Whether the 3DModel allows resizing. For example, room layout applications often do not allow 3DModel elements to be resized to reflect reality.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SchemaClass.php b/src/models/jsonld/SchemaClass.php index e6371324a..87a1d4d2f 100644 --- a/src/models/jsonld/SchemaClass.php +++ b/src/models/jsonld/SchemaClass.php @@ -23,124 +23,124 @@ */ class SchemaClass extends MetaJsonLd implements SchemaClassInterface, IntangibleInterface, ThingInterface { - use SchemaClassTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Class'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Class'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A class, also often called a \'Type\'; equivalent to rdfs:Class.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SchemaClassTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Class'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Class'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A class, also often called a \'Type\'; equivalent to rdfs:Class.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SchemaFalse.php b/src/models/jsonld/SchemaFalse.php index e04855971..bc75c6799 100644 --- a/src/models/jsonld/SchemaFalse.php +++ b/src/models/jsonld/SchemaFalse.php @@ -23,99 +23,99 @@ */ class SchemaFalse extends MetaJsonLd implements SchemaFalseInterface, BooleanInterface { - use SchemaFalseTrait; - use BooleanTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'False'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/False'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Boolean'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The boolean value false.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SchemaFalseTrait; + use BooleanTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'False'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/False'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Boolean'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The boolean value false.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SchemaFloat.php b/src/models/jsonld/SchemaFloat.php index 73cf3f966..7e4df2fe8 100644 --- a/src/models/jsonld/SchemaFloat.php +++ b/src/models/jsonld/SchemaFloat.php @@ -23,99 +23,99 @@ */ class SchemaFloat extends MetaJsonLd implements SchemaFloatInterface, NumberInterface { - use SchemaFloatTrait; - use NumberTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Float'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Float'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Number'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data type: Floating number.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SchemaFloatTrait; + use NumberTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Float'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Float'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Number'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data type: Floating number.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SchemaTrue.php b/src/models/jsonld/SchemaTrue.php index 2634c82eb..f746ade91 100644 --- a/src/models/jsonld/SchemaTrue.php +++ b/src/models/jsonld/SchemaTrue.php @@ -23,99 +23,99 @@ */ class SchemaTrue extends MetaJsonLd implements SchemaTrueInterface, BooleanInterface { - use SchemaTrueTrait; - use BooleanTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'True'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/True'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Boolean'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The boolean value true.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SchemaTrueTrait; + use BooleanTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'True'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/True'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Boolean'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The boolean value true.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ScholarlyArticle.php b/src/models/jsonld/ScholarlyArticle.php index 299dce2a9..14426956c 100644 --- a/src/models/jsonld/ScholarlyArticle.php +++ b/src/models/jsonld/ScholarlyArticle.php @@ -23,363 +23,363 @@ */ class ScholarlyArticle extends MetaJsonLd implements ScholarlyArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use ScholarlyArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use ScholarlyArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ScholarlyArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ScholarlyArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ScholarlyArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ScholarlyArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A scholarly article.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A scholarly article.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/School.php b/src/models/jsonld/School.php index b5a73f691..a3eabc4e2 100644 --- a/src/models/jsonld/School.php +++ b/src/models/jsonld/School.php @@ -23,323 +23,323 @@ */ class School extends MetaJsonLd implements SchoolInterface, EducationalOrganizationInterface, CivicStructureInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use SchoolTrait; - use EducationalOrganizationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use SchoolTrait; + use EducationalOrganizationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'School'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'School'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/School'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/School'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EducationalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EducationalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A school.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A school.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SchoolDistrict.php b/src/models/jsonld/SchoolDistrict.php index f521ea1fe..a658f15ed 100644 --- a/src/models/jsonld/SchoolDistrict.php +++ b/src/models/jsonld/SchoolDistrict.php @@ -24,213 +24,213 @@ */ class SchoolDistrict extends MetaJsonLd implements SchoolDistrictInterface, AdministrativeAreaInterface, PlaceInterface, ThingInterface { - use SchoolDistrictTrait; - use AdministrativeAreaTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SchoolDistrict'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SchoolDistrict'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A School District is an administrative area for the administration of schools.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SchoolDistrictTrait; + use AdministrativeAreaTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SchoolDistrict'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SchoolDistrict'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A School District is an administrative area for the administration of schools.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ScreeningEvent.php b/src/models/jsonld/ScreeningEvent.php index c54e0f59c..2ab46e08d 100644 --- a/src/models/jsonld/ScreeningEvent.php +++ b/src/models/jsonld/ScreeningEvent.php @@ -23,210 +23,210 @@ */ class ScreeningEvent extends MetaJsonLd implements ScreeningEventInterface, EventInterface, ThingInterface { - use ScreeningEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ScreeningEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ScreeningEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A screening of a movie or other video.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'subtitleLanguage' => ['Language', 'Text'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'videoFormat' => ['Text'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'], - 'workPresented' => ['Movie'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', - 'workPresented' => 'The movie presented during this event.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ScreeningEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ScreeningEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ScreeningEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A screening of a movie or other video.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'subtitleLanguage' => ['Language', 'Text'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'videoFormat' => ['Text'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + 'workPresented' => ['Movie'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + 'workPresented' => 'The movie presented during this event.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ScreeningHealthAspect.php b/src/models/jsonld/ScreeningHealthAspect.php index b460dad3b..59f05f8c7 100644 --- a/src/models/jsonld/ScreeningHealthAspect.php +++ b/src/models/jsonld/ScreeningHealthAspect.php @@ -23,126 +23,126 @@ */ class ScreeningHealthAspect extends MetaJsonLd implements ScreeningHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ScreeningHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ScreeningHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ScreeningHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about how to screen or further filter a topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ScreeningHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ScreeningHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ScreeningHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about how to screen or further filter a topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Sculpture.php b/src/models/jsonld/Sculpture.php index 0ed9fa645..c14e70b3f 100644 --- a/src/models/jsonld/Sculpture.php +++ b/src/models/jsonld/Sculpture.php @@ -23,346 +23,346 @@ */ class Sculpture extends MetaJsonLd implements SculptureInterface, CreativeWorkInterface, ThingInterface { - use SculptureTrait; - use CreativeWorkTrait; - use ThingTrait; + use SculptureTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Sculpture'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Sculpture'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Sculpture'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Sculpture'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A piece of sculpture.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A piece of sculpture.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SeaBodyOfWater.php b/src/models/jsonld/SeaBodyOfWater.php index 84ba69405..a961be2e9 100644 --- a/src/models/jsonld/SeaBodyOfWater.php +++ b/src/models/jsonld/SeaBodyOfWater.php @@ -23,214 +23,214 @@ */ class SeaBodyOfWater extends MetaJsonLd implements SeaBodyOfWaterInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use SeaBodyOfWaterTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SeaBodyOfWater'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SeaBodyOfWater'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A sea (for example, the Caspian sea).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SeaBodyOfWaterTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SeaBodyOfWater'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SeaBodyOfWater'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A sea (for example, the Caspian sea).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SearchAction.php b/src/models/jsonld/SearchAction.php index 11dfa6eb0..91afa7a40 100644 --- a/src/models/jsonld/SearchAction.php +++ b/src/models/jsonld/SearchAction.php @@ -24,148 +24,148 @@ */ class SearchAction extends MetaJsonLd implements SearchActionInterface, ActionInterface, ThingInterface { - use SearchActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SearchAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SearchAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of searching for an object.\n\nRelated actions:\n\n* [[FindAction]]: SearchAction generally leads to a FindAction, but not necessarily.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'query' => ['Text'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'query' => 'A sub property of instrument. The query used on this action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SearchActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SearchAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SearchAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of searching for an object.\n\nRelated actions:\n\n* [[FindAction]]: SearchAction generally leads to a FindAction, but not necessarily.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'query' => ['Text'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'query' => 'A sub property of instrument. The query used on this action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SearchRescueOrganization.php b/src/models/jsonld/SearchRescueOrganization.php index a127e70b6..0b195602c 100644 --- a/src/models/jsonld/SearchRescueOrganization.php +++ b/src/models/jsonld/SearchRescueOrganization.php @@ -23,254 +23,254 @@ */ class SearchRescueOrganization extends MetaJsonLd implements SearchRescueOrganizationInterface, OrganizationInterface, ThingInterface { - use SearchRescueOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use SearchRescueOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SearchRescueOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SearchRescueOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SearchRescueOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SearchRescueOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Search and Rescue organization of some kind.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Search and Rescue organization of some kind.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SearchResultsPage.php b/src/models/jsonld/SearchResultsPage.php index c7147d63a..1f82f796d 100644 --- a/src/models/jsonld/SearchResultsPage.php +++ b/src/models/jsonld/SearchResultsPage.php @@ -23,367 +23,367 @@ */ class SearchResultsPage extends MetaJsonLd implements SearchResultsPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use SearchResultsPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use SearchResultsPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SearchResultsPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SearchResultsPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SearchResultsPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SearchResultsPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPage'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPage'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Search results page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Search results page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Season.php b/src/models/jsonld/Season.php index a7b177059..fbf955e96 100644 --- a/src/models/jsonld/Season.php +++ b/src/models/jsonld/Season.php @@ -23,346 +23,346 @@ */ class Season extends MetaJsonLd implements SeasonInterface, CreativeWorkInterface, ThingInterface { - use SeasonTrait; - use CreativeWorkTrait; - use ThingTrait; + use SeasonTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Season'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Season'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Season'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Season'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A media season, e.g. TV, radio, video game etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A media season, e.g. TV, radio, video game etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Seat.php b/src/models/jsonld/Seat.php index d54f1af2c..38f2501ea 100644 --- a/src/models/jsonld/Seat.php +++ b/src/models/jsonld/Seat.php @@ -23,130 +23,130 @@ */ class Seat extends MetaJsonLd implements SeatInterface, IntangibleInterface, ThingInterface { - use SeatTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Seat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Seat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Used to describe a seat, such as a reserved seat in an event reservation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'seatNumber' => ['Text'], - 'seatRow' => ['Text'], - 'seatSection' => ['Text'], - 'seatingType' => ['Text', 'QualitativeValue'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'seatNumber' => 'The location of the reserved seat (e.g., 27).', - 'seatRow' => 'The row location of the reserved seat (e.g., B).', - 'seatSection' => 'The section location of the reserved seat (e.g. Orchestra).', - 'seatingType' => 'The type/class of the seat.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SeatTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Seat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Seat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Used to describe a seat, such as a reserved seat in an event reservation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'seatNumber' => ['Text'], + 'seatRow' => ['Text'], + 'seatSection' => ['Text'], + 'seatingType' => ['Text', 'QualitativeValue'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'seatNumber' => 'The location of the reserved seat (e.g., 27).', + 'seatRow' => 'The row location of the reserved seat (e.g., B).', + 'seatSection' => 'The section location of the reserved seat (e.g. Orchestra).', + 'seatingType' => 'The type/class of the seat.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SeatingMap.php b/src/models/jsonld/SeatingMap.php index 7962f898d..2e4a88ef3 100644 --- a/src/models/jsonld/SeatingMap.php +++ b/src/models/jsonld/SeatingMap.php @@ -23,126 +23,126 @@ */ class SeatingMap extends MetaJsonLd implements SeatingMapInterface, MapCategoryTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SeatingMapTrait; - use MapCategoryTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SeatingMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SeatingMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A seating map.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SeatingMapTrait; + use MapCategoryTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SeatingMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SeatingMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A seating map.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SeeDoctorHealthAspect.php b/src/models/jsonld/SeeDoctorHealthAspect.php index 9fcb78795..3bb71ded6 100644 --- a/src/models/jsonld/SeeDoctorHealthAspect.php +++ b/src/models/jsonld/SeeDoctorHealthAspect.php @@ -24,126 +24,126 @@ */ class SeeDoctorHealthAspect extends MetaJsonLd implements SeeDoctorHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SeeDoctorHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SeeDoctorHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SeeDoctorHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Information about questions that may be asked, when to see a professional, measures before seeing a doctor or content about the first consultation.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SeeDoctorHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SeeDoctorHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SeeDoctorHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Information about questions that may be asked, when to see a professional, measures before seeing a doctor or content about the first consultation.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SeekToAction.php b/src/models/jsonld/SeekToAction.php index 524fa98cc..fd3974541 100644 --- a/src/models/jsonld/SeekToAction.php +++ b/src/models/jsonld/SeekToAction.php @@ -25,148 +25,148 @@ */ class SeekToAction extends MetaJsonLd implements SeekToActionInterface, ActionInterface, ThingInterface { - use SeekToActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SeekToAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SeekToAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'This is the [[Action]] of navigating to a specific [[startOffset]] timestamp within a [[VideoObject]], typically represented with a URL template structure.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startOffset' => ['Number', 'HyperTocEntry'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SeekToActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SeekToAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SeekToAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'This is the [[Action]] of navigating to a specific [[startOffset]] timestamp within a [[VideoObject]], typically represented with a URL template structure.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startOffset' => ['Number', 'HyperTocEntry'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SelfCareHealthAspect.php b/src/models/jsonld/SelfCareHealthAspect.php index dfc423257..ba08df31a 100644 --- a/src/models/jsonld/SelfCareHealthAspect.php +++ b/src/models/jsonld/SelfCareHealthAspect.php @@ -25,126 +25,126 @@ */ class SelfCareHealthAspect extends MetaJsonLd implements SelfCareHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SelfCareHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SelfCareHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SelfCareHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Self care actions or measures that can be taken to sooth, health or avoid a topic. This may be carried at home and can be carried/managed by the person itself.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SelfCareHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SelfCareHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SelfCareHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Self care actions or measures that can be taken to sooth, health or avoid a topic. This may be carried at home and can be carried/managed by the person itself.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SelfStorage.php b/src/models/jsonld/SelfStorage.php index a46944af6..800ba87bc 100644 --- a/src/models/jsonld/SelfStorage.php +++ b/src/models/jsonld/SelfStorage.php @@ -23,330 +23,330 @@ */ class SelfStorage extends MetaJsonLd implements SelfStorageInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use SelfStorageTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use SelfStorageTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SelfStorage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SelfStorage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SelfStorage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SelfStorage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A self-storage facility.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A self-storage facility.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SellAction.php b/src/models/jsonld/SellAction.php index f7f23a343..93d4bce6b 100644 --- a/src/models/jsonld/SellAction.php +++ b/src/models/jsonld/SellAction.php @@ -25,157 +25,157 @@ */ class SellAction extends MetaJsonLd implements SellActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use SellActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SellAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SellAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of taking money from a buyer in exchange for goods or services rendered. An agent sells an object, product, or service to a buyer for a price. Reciprocal of BuyAction.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'buyer' => ['Organization', 'Person'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'], - 'warrantyPromise' => ['WarrantyPromise'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'buyer' => 'A sub property of participant. The participant/person/organization that bought the object.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.', - 'warrantyPromise' => 'The warranty promise(s) included in the offer.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SellActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SellAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SellAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of taking money from a buyer in exchange for goods or services rendered. An agent sells an object, product, or service to a buyer for a price. Reciprocal of BuyAction.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'buyer' => ['Organization', 'Person'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + 'warrantyPromise' => ['WarrantyPromise'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'buyer' => 'A sub property of participant. The participant/person/organization that bought the object.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + 'warrantyPromise' => 'The warranty promise(s) included in the offer.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SendAction.php b/src/models/jsonld/SendAction.php index 0210a2be9..4cb6dfb68 100644 --- a/src/models/jsonld/SendAction.php +++ b/src/models/jsonld/SendAction.php @@ -27,155 +27,155 @@ */ class SendAction extends MetaJsonLd implements SendActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use SendActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of physically/electronically dispatching an object for transfer from an origin to a destination. Related actions:\n\n* [[ReceiveAction]]: The reciprocal of SendAction.\n* [[GiveAction]]: Unlike GiveAction, SendAction does not imply the transfer of ownership (e.g. I can send you my laptop, but I\'m not necessarily giving it to you).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'deliveryMethod' => ['DeliveryMethod'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SendActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of physically/electronically dispatching an object for transfer from an origin to a destination. Related actions:\n\n* [[ReceiveAction]]: The reciprocal of SendAction.\n* [[GiveAction]]: Unlike GiveAction, SendAction does not imply the transfer of ownership (e.g. I can send you my laptop, but I\'m not necessarily giving it to you).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'deliveryMethod' => ['DeliveryMethod'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Series.php b/src/models/jsonld/Series.php index 497c7c792..a3b321453 100644 --- a/src/models/jsonld/Series.php +++ b/src/models/jsonld/Series.php @@ -25,122 +25,122 @@ */ class Series extends MetaJsonLd implements SeriesInterface, IntangibleInterface, ThingInterface { - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Series'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Series'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Series in schema.org is a group of related items, typically but not necessarily of the same kind. See also [[CreativeWorkSeries]], [[EventSeries]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Series'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Series'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Series in schema.org is a group of related items, typically but not necessarily of the same kind. See also [[CreativeWorkSeries]], [[EventSeries]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Service.php b/src/models/jsonld/Service.php index 101edf9f2..5a5ed1f33 100644 --- a/src/models/jsonld/Service.php +++ b/src/models/jsonld/Service.php @@ -24,170 +24,170 @@ */ class Service extends MetaJsonLd implements ServiceInterface, IntangibleInterface, ThingInterface { - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Service'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Service'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A service provided by an organization, e.g. delivery service, print services, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Service'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Service'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A service provided by an organization, e.g. delivery service, print services, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ServiceChannel.php b/src/models/jsonld/ServiceChannel.php index 76b488dfb..8be804113 100644 --- a/src/models/jsonld/ServiceChannel.php +++ b/src/models/jsonld/ServiceChannel.php @@ -24,138 +24,138 @@ */ class ServiceChannel extends MetaJsonLd implements ServiceChannelInterface, IntangibleInterface, ThingInterface { - use ServiceChannelTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ServiceChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ServiceChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A means for accessing a service, e.g. a government office location, web site, or phone number.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'availableLanguage' => ['Text', 'Language'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'processingTime' => ['Duration'], - 'providesService' => ['Service'], - 'sameAs' => ['URL'], - 'serviceLocation' => ['Place'], - 'servicePhone' => ['ContactPoint'], - 'servicePostalAddress' => ['PostalAddress'], - 'serviceSmsNumber' => ['ContactPoint'], - 'serviceUrl' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'processingTime' => 'Estimated processing time for the service using this channel.', - 'providesService' => 'The service provided by this channel.', - '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.', - 'serviceLocation' => 'The location (e.g. civic structure, local business, etc.) where a person can go to access the service.', - 'servicePhone' => 'The phone number to use to access the service.', - 'servicePostalAddress' => 'The address for accessing the service by mail.', - 'serviceSmsNumber' => 'The number to access the service by text message.', - 'serviceUrl' => 'The website to access the service.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ServiceChannelTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ServiceChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ServiceChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A means for accessing a service, e.g. a government office location, web site, or phone number.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'availableLanguage' => ['Text', 'Language'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'processingTime' => ['Duration'], + 'providesService' => ['Service'], + 'sameAs' => ['URL'], + 'serviceLocation' => ['Place'], + 'servicePhone' => ['ContactPoint'], + 'servicePostalAddress' => ['PostalAddress'], + 'serviceSmsNumber' => ['ContactPoint'], + 'serviceUrl' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'processingTime' => 'Estimated processing time for the service using this channel.', + 'providesService' => 'The service provided by this channel.', + '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.', + 'serviceLocation' => 'The location (e.g. civic structure, local business, etc.) where a person can go to access the service.', + 'servicePhone' => 'The phone number to use to access the service.', + 'servicePostalAddress' => 'The address for accessing the service by mail.', + 'serviceSmsNumber' => 'The number to access the service by text message.', + 'serviceUrl' => 'The website to access the service.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SexualContentConsideration.php b/src/models/jsonld/SexualContentConsideration.php index 46a457077..8df8207a6 100644 --- a/src/models/jsonld/SexualContentConsideration.php +++ b/src/models/jsonld/SexualContentConsideration.php @@ -26,126 +26,126 @@ */ class SexualContentConsideration extends MetaJsonLd implements SexualContentConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SexualContentConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SexualContentConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SexualContentConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The item contains sexually oriented content such as nudity, suggestive or explicit material, or related online services, or is intended to enhance sexual activity. Examples: Erotic videos or magazine, sexual enhancement devices, sex toys.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SexualContentConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SexualContentConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SexualContentConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The item contains sexually oriented content such as nudity, suggestive or explicit material, or related online services, or is intended to enhance sexual activity. Examples: Erotic videos or magazine, sexual enhancement devices, sex toys.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ShareAction.php b/src/models/jsonld/ShareAction.php index f6e9f8914..09beac9ed 100644 --- a/src/models/jsonld/ShareAction.php +++ b/src/models/jsonld/ShareAction.php @@ -24,156 +24,156 @@ */ class ShareAction extends MetaJsonLd implements ShareActionInterface, CommunicateActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use ShareActionTrait; - use CommunicateActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ShareAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ShareAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CommunicateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of distributing content to people for their amusement or edification.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ShareActionTrait; + use CommunicateActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ShareAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ShareAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CommunicateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of distributing content to people for their amusement or edification.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SheetMusic.php b/src/models/jsonld/SheetMusic.php index ccee6ec31..77c8f9eef 100644 --- a/src/models/jsonld/SheetMusic.php +++ b/src/models/jsonld/SheetMusic.php @@ -23,346 +23,346 @@ */ class SheetMusic extends MetaJsonLd implements SheetMusicInterface, CreativeWorkInterface, ThingInterface { - use SheetMusicTrait; - use CreativeWorkTrait; - use ThingTrait; + use SheetMusicTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SheetMusic'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SheetMusic'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SheetMusic'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SheetMusic'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Printed music, as opposed to performed or recorded music.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Printed music, as opposed to performed or recorded music.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ShippingDeliveryTime.php b/src/models/jsonld/ShippingDeliveryTime.php index 0409254b4..d17d1864f 100644 --- a/src/models/jsonld/ShippingDeliveryTime.php +++ b/src/models/jsonld/ShippingDeliveryTime.php @@ -24,131 +24,131 @@ */ class ShippingDeliveryTime extends MetaJsonLd implements ShippingDeliveryTimeInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use ShippingDeliveryTimeTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ShippingDeliveryTime'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ShippingDeliveryTime'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'ShippingDeliveryTime provides various pieces of information about delivery times for shipping.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'businessDays' => ['OpeningHoursSpecification'], - 'cutoffTime' => ['Time'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'handlingTime' => ['QuantitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'transitTime' => ['QuantitativeValue'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'businessDays' => 'Days of the week when the merchant typically operates, indicated via opening hours markup.', - 'cutoffTime' => 'Order cutoff time allows merchants to describe the time after which they will no longer process orders received on that day. For orders processed after cutoff time, one day gets added to the delivery time estimate. This property is expected to be most typically used via the [[ShippingRateSettings]] publication pattern. The time is indicated using the ISO-8601 Time format, e.g. "23:30:00-05:00" would represent 6:30 pm Eastern Standard Time (EST) which is 5 hours behind Coordinated Universal Time (UTC).', - 'description' => 'A description of the item.', - '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.', - 'handlingTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup. Typical properties: minValue, maxValue, unitCode (d for DAY). This is by common convention assumed to mean business days (if a unitCode is used, coded as "d"), i.e. only counting days when the business normally operates.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'transitTime' => 'The typical delay the order has been sent for delivery and the goods reach the final customer. Typical properties: minValue, maxValue, unitCode (d for DAY).', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ShippingDeliveryTimeTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ShippingDeliveryTime'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ShippingDeliveryTime'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'ShippingDeliveryTime provides various pieces of information about delivery times for shipping.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'businessDays' => ['OpeningHoursSpecification'], + 'cutoffTime' => ['Time'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'handlingTime' => ['QuantitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'transitTime' => ['QuantitativeValue'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'businessDays' => 'Days of the week when the merchant typically operates, indicated via opening hours markup.', + 'cutoffTime' => 'Order cutoff time allows merchants to describe the time after which they will no longer process orders received on that day. For orders processed after cutoff time, one day gets added to the delivery time estimate. This property is expected to be most typically used via the [[ShippingRateSettings]] publication pattern. The time is indicated using the ISO-8601 Time format, e.g. "23:30:00-05:00" would represent 6:30 pm Eastern Standard Time (EST) which is 5 hours behind Coordinated Universal Time (UTC).', + 'description' => 'A description of the item.', + '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.', + 'handlingTime' => 'The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup. Typical properties: minValue, maxValue, unitCode (d for DAY). This is by common convention assumed to mean business days (if a unitCode is used, coded as "d"), i.e. only counting days when the business normally operates.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'transitTime' => 'The typical delay the order has been sent for delivery and the goods reach the final customer. Typical properties: minValue, maxValue, unitCode (d for DAY).', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ShippingRateSettings.php b/src/models/jsonld/ShippingRateSettings.php index 30138d45c..77f49b828 100644 --- a/src/models/jsonld/ShippingRateSettings.php +++ b/src/models/jsonld/ShippingRateSettings.php @@ -27,135 +27,135 @@ */ class ShippingRateSettings extends MetaJsonLd implements ShippingRateSettingsInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use ShippingRateSettingsTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ShippingRateSettings'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ShippingRateSettings'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A ShippingRateSettings represents re-usable pieces of shipping information. It is designed for publication on an URL that may be referenced via the [[shippingSettingsLink]] property of an [[OfferShippingDetails]]. Several occurrences can be published, distinguished and matched (i.e. identified/referenced) by their different values for [[shippingLabel]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doesNotShip' => ['Boolean'], - 'freeShippingThreshold' => ['DeliveryChargeSpecification', 'MonetaryAmount'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isUnlabelledFallback' => ['Boolean'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'shippingDestination' => ['DefinedRegion'], - 'shippingLabel' => ['Text'], - 'shippingRate' => ['MonetaryAmount'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'doesNotShip' => 'Indicates when shipping to a particular [[shippingDestination]] is not available.', - 'freeShippingThreshold' => 'A monetary value above (or at) which the shipping rate becomes free. Intended to be used via an [[OfferShippingDetails]] with [[shippingSettingsLink]] matching this [[ShippingRateSettings]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isUnlabelledFallback' => 'This can be marked \'true\' to indicate that some published [[DeliveryTimeSettings]] or [[ShippingRateSettings]] are intended to apply to all [[OfferShippingDetails]] published by the same merchant, when referenced by a [[shippingSettingsLink]] in those settings. It is not meaningful to use a \'true\' value for this property alongside a transitTimeLabel (for [[DeliveryTimeSettings]]) or shippingLabel (for [[ShippingRateSettings]]), since this property is for use with unlabelled settings.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'shippingDestination' => 'indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.', - 'shippingLabel' => 'Label to match an [[OfferShippingDetails]] with a [[ShippingRateSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', - 'shippingRate' => 'The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the [[MonetaryAmount]]) are most appropriate.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ShippingRateSettingsTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ShippingRateSettings'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ShippingRateSettings'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A ShippingRateSettings represents re-usable pieces of shipping information. It is designed for publication on an URL that may be referenced via the [[shippingSettingsLink]] property of an [[OfferShippingDetails]]. Several occurrences can be published, distinguished and matched (i.e. identified/referenced) by their different values for [[shippingLabel]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doesNotShip' => ['Boolean'], + 'freeShippingThreshold' => ['DeliveryChargeSpecification', 'MonetaryAmount'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isUnlabelledFallback' => ['Boolean'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'shippingDestination' => ['DefinedRegion'], + 'shippingLabel' => ['Text'], + 'shippingRate' => ['MonetaryAmount'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'doesNotShip' => 'Indicates when shipping to a particular [[shippingDestination]] is not available.', + 'freeShippingThreshold' => 'A monetary value above (or at) which the shipping rate becomes free. Intended to be used via an [[OfferShippingDetails]] with [[shippingSettingsLink]] matching this [[ShippingRateSettings]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isUnlabelledFallback' => 'This can be marked \'true\' to indicate that some published [[DeliveryTimeSettings]] or [[ShippingRateSettings]] are intended to apply to all [[OfferShippingDetails]] published by the same merchant, when referenced by a [[shippingSettingsLink]] in those settings. It is not meaningful to use a \'true\' value for this property alongside a transitTimeLabel (for [[DeliveryTimeSettings]]) or shippingLabel (for [[ShippingRateSettings]]), since this property is for use with unlabelled settings.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'shippingDestination' => 'indicates (possibly multiple) shipping destinations. These can be defined in several ways, e.g. postalCode ranges.', + 'shippingLabel' => 'Label to match an [[OfferShippingDetails]] with a [[ShippingRateSettings]] (within the context of a [[shippingSettingsLink]] cross-reference).', + 'shippingRate' => 'The shipping rate is the cost of shipping to the specified destination. Typically, the maxValue and currency values (of the [[MonetaryAmount]]) are most appropriate.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ShoeStore.php b/src/models/jsonld/ShoeStore.php index 95dbd5ff4..368b98529 100644 --- a/src/models/jsonld/ShoeStore.php +++ b/src/models/jsonld/ShoeStore.php @@ -23,331 +23,331 @@ */ class ShoeStore extends MetaJsonLd implements ShoeStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ShoeStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ShoeStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ShoeStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ShoeStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ShoeStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ShoeStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A shoe store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A shoe store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ShoppingCenter.php b/src/models/jsonld/ShoppingCenter.php index 0e35b7a1b..f0ceb0624 100644 --- a/src/models/jsonld/ShoppingCenter.php +++ b/src/models/jsonld/ShoppingCenter.php @@ -23,330 +23,330 @@ */ class ShoppingCenter extends MetaJsonLd implements ShoppingCenterInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ShoppingCenterTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ShoppingCenterTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ShoppingCenter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ShoppingCenter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ShoppingCenter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ShoppingCenter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A shopping center or mall.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A shopping center or mall.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ShortStory.php b/src/models/jsonld/ShortStory.php index a434b7ab0..0e684c429 100644 --- a/src/models/jsonld/ShortStory.php +++ b/src/models/jsonld/ShortStory.php @@ -24,346 +24,346 @@ */ class ShortStory extends MetaJsonLd implements ShortStoryInterface, CreativeWorkInterface, ThingInterface { - use ShortStoryTrait; - use CreativeWorkTrait; - use ThingTrait; + use ShortStoryTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ShortStory'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ShortStory'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ShortStory'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ShortStory'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Short story or tale. A brief work of literature, usually written in narrative prose.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Short story or tale. A brief work of literature, usually written in narrative prose.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SideEffectsHealthAspect.php b/src/models/jsonld/SideEffectsHealthAspect.php index cf5f8f675..da965b7ec 100644 --- a/src/models/jsonld/SideEffectsHealthAspect.php +++ b/src/models/jsonld/SideEffectsHealthAspect.php @@ -23,126 +23,126 @@ */ class SideEffectsHealthAspect extends MetaJsonLd implements SideEffectsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SideEffectsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SideEffectsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SideEffectsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Side effects that can be observed from the usage of the topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SideEffectsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SideEffectsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SideEffectsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Side effects that can be observed from the usage of the topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SingleBlindedTrial.php b/src/models/jsonld/SingleBlindedTrial.php index 2ef89784e..acd75a771 100644 --- a/src/models/jsonld/SingleBlindedTrial.php +++ b/src/models/jsonld/SingleBlindedTrial.php @@ -24,127 +24,127 @@ */ class SingleBlindedTrial extends MetaJsonLd implements SingleBlindedTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SingleBlindedTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SingleBlindedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SingleBlindedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trial design in which the researcher knows which treatment the patient was randomly assigned to but the patient does not.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SingleBlindedTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SingleBlindedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SingleBlindedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trial design in which the researcher knows which treatment the patient was randomly assigned to but the patient does not.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SingleCenterTrial.php b/src/models/jsonld/SingleCenterTrial.php index d1c51cf98..e5717c5d9 100644 --- a/src/models/jsonld/SingleCenterTrial.php +++ b/src/models/jsonld/SingleCenterTrial.php @@ -23,127 +23,127 @@ */ class SingleCenterTrial extends MetaJsonLd implements SingleCenterTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SingleCenterTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SingleCenterTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SingleCenterTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trial that takes place at a single center.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SingleCenterTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SingleCenterTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SingleCenterTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trial that takes place at a single center.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SingleFamilyResidence.php b/src/models/jsonld/SingleFamilyResidence.php index d2ffc3239..4e89eb85f 100644 --- a/src/models/jsonld/SingleFamilyResidence.php +++ b/src/models/jsonld/SingleFamilyResidence.php @@ -23,242 +23,242 @@ */ class SingleFamilyResidence extends MetaJsonLd implements SingleFamilyResidenceInterface, HouseInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use SingleFamilyResidenceTrait; - use HouseTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use SingleFamilyResidenceTrait; + use HouseTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SingleFamilyResidence'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SingleFamilyResidence'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SingleFamilyResidence'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SingleFamilyResidence'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'House'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'House'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Residence type: Single-family home.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Residence type: Single-family home.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'occupancy' => ['QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'occupancy' => ['QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SinglePlayer.php b/src/models/jsonld/SinglePlayer.php index 282590e13..c719afede 100644 --- a/src/models/jsonld/SinglePlayer.php +++ b/src/models/jsonld/SinglePlayer.php @@ -23,126 +23,126 @@ */ class SinglePlayer extends MetaJsonLd implements SinglePlayerInterface, GamePlayModeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SinglePlayerTrait; - use GamePlayModeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SinglePlayer'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SinglePlayer'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GamePlayMode'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Play mode: SinglePlayer. Which is played by a lone player.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SinglePlayerTrait; + use GamePlayModeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SinglePlayer'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SinglePlayer'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GamePlayMode'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Play mode: SinglePlayer. Which is played by a lone player.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SingleRelease.php b/src/models/jsonld/SingleRelease.php index d111c2af3..061c00d8f 100644 --- a/src/models/jsonld/SingleRelease.php +++ b/src/models/jsonld/SingleRelease.php @@ -23,126 +23,126 @@ */ class SingleRelease extends MetaJsonLd implements SingleReleaseInterface, MusicAlbumReleaseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SingleReleaseTrait; - use MusicAlbumReleaseTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SingleRelease'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SingleRelease'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumReleaseType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'SingleRelease.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SingleReleaseTrait; + use MusicAlbumReleaseTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SingleRelease'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SingleRelease'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumReleaseType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'SingleRelease.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SiteNavigationElement.php b/src/models/jsonld/SiteNavigationElement.php index fb6dd9016..cb4a3df2f 100644 --- a/src/models/jsonld/SiteNavigationElement.php +++ b/src/models/jsonld/SiteNavigationElement.php @@ -23,351 +23,351 @@ */ class SiteNavigationElement extends MetaJsonLd implements SiteNavigationElementInterface, WebPageElementInterface, CreativeWorkInterface, ThingInterface { - use SiteNavigationElementTrait; - use WebPageElementTrait; - use CreativeWorkTrait; - use ThingTrait; + use SiteNavigationElementTrait; + use WebPageElementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SiteNavigationElement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SiteNavigationElement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SiteNavigationElement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SiteNavigationElement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A navigation element of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A navigation element of the page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'xpath' => ['XPathType'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'xpath' => ['XPathType'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SizeGroupEnumeration.php b/src/models/jsonld/SizeGroupEnumeration.php index 1b3f1b128..432adb38e 100644 --- a/src/models/jsonld/SizeGroupEnumeration.php +++ b/src/models/jsonld/SizeGroupEnumeration.php @@ -23,125 +23,125 @@ */ class SizeGroupEnumeration extends MetaJsonLd implements SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SizeGroupEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SizeGroupEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates common size groups for various product categories.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SizeGroupEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SizeGroupEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates common size groups for various product categories.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SizeSpecification.php b/src/models/jsonld/SizeSpecification.php index cbb9fd623..750829f24 100644 --- a/src/models/jsonld/SizeSpecification.php +++ b/src/models/jsonld/SizeSpecification.php @@ -27,154 +27,154 @@ */ class SizeSpecification extends MetaJsonLd implements SizeSpecificationInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SizeSpecificationTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SizeSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SizeSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size related properties of a product, typically a size code ([[name]]) and optionally a [[sizeSystem]], [[sizeGroup]], and product measurements ([[hasMeasurement]]). In addition, the intended audience can be defined through [[suggestedAge]], [[suggestedGender]], and suggested body measurements ([[suggestedMeasurement]]).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'hasMeasurement' => ['QuantitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'sizeGroup' => ['SizeGroupEnumeration', 'Text'], - 'sizeSystem' => ['Text', 'SizeSystemEnumeration'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'suggestedAge' => ['QuantitativeValue'], - 'suggestedGender' => ['GenderType', 'Text'], - 'suggestedMeasurement' => ['QuantitativeValue'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'sizeGroup' => 'The size group (also known as "size type") for a product\'s size. Size groups are common in the fashion industry to define size segments and suggested audiences for wearable products. Multiple values can be combined, for example "men\'s big and tall", "petite maternity" or "regular"', - 'sizeSystem' => 'The size system used to identify a product\'s size. Typically either a standard (for example, "GS1" or "ISO-EN13402"), country code (for example "US" or "JP"), or a measuring system (for example "Metric" or "Imperial").', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', - 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', - 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SizeSpecificationTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SizeSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SizeSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size related properties of a product, typically a size code ([[name]]) and optionally a [[sizeSystem]], [[sizeGroup]], and product measurements ([[hasMeasurement]]). In addition, the intended audience can be defined through [[suggestedAge]], [[suggestedGender]], and suggested body measurements ([[suggestedMeasurement]]).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'hasMeasurement' => ['QuantitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'sizeGroup' => ['SizeGroupEnumeration', 'Text'], + 'sizeSystem' => ['Text', 'SizeSystemEnumeration'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'suggestedAge' => ['QuantitativeValue'], + 'suggestedGender' => ['GenderType', 'Text'], + 'suggestedMeasurement' => ['QuantitativeValue'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'sizeGroup' => 'The size group (also known as "size type") for a product\'s size. Size groups are common in the fashion industry to define size segments and suggested audiences for wearable products. Multiple values can be combined, for example "men\'s big and tall", "petite maternity" or "regular"', + 'sizeSystem' => 'The size system used to identify a product\'s size. Typically either a standard (for example, "GS1" or "ISO-EN13402"), country code (for example "US" or "JP"), or a measuring system (for example "Metric" or "Imperial").', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', + 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', + 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SizeSystemEnumeration.php b/src/models/jsonld/SizeSystemEnumeration.php index d06c0eab5..22eeaaddf 100644 --- a/src/models/jsonld/SizeSystemEnumeration.php +++ b/src/models/jsonld/SizeSystemEnumeration.php @@ -24,125 +24,125 @@ */ class SizeSystemEnumeration extends MetaJsonLd implements SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SizeSystemEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates common size systems for different categories of products, for example "EN-13402" or "UK" for wearables or "Imperial" for screws.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SizeSystemEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates common size systems for different categories of products, for example "EN-13402" or "UK" for wearables or "Imperial" for screws.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SizeSystemImperial.php b/src/models/jsonld/SizeSystemImperial.php index e534968a3..50afbf200 100644 --- a/src/models/jsonld/SizeSystemImperial.php +++ b/src/models/jsonld/SizeSystemImperial.php @@ -23,126 +23,126 @@ */ class SizeSystemImperial extends MetaJsonLd implements SizeSystemImperialInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SizeSystemImperialTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SizeSystemImperial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SizeSystemImperial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Imperial size system.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SizeSystemImperialTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SizeSystemImperial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SizeSystemImperial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Imperial size system.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SizeSystemMetric.php b/src/models/jsonld/SizeSystemMetric.php index 5cc23cd3b..21ca38e4b 100644 --- a/src/models/jsonld/SizeSystemMetric.php +++ b/src/models/jsonld/SizeSystemMetric.php @@ -23,126 +23,126 @@ */ class SizeSystemMetric extends MetaJsonLd implements SizeSystemMetricInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SizeSystemMetricTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SizeSystemMetric'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SizeSystemMetric'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Metric size system.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SizeSystemMetricTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SizeSystemMetric'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SizeSystemMetric'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Metric size system.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SkiResort.php b/src/models/jsonld/SkiResort.php index cbb6ad54a..800ee5555 100644 --- a/src/models/jsonld/SkiResort.php +++ b/src/models/jsonld/SkiResort.php @@ -23,347 +23,347 @@ */ class SkiResort extends MetaJsonLd implements SkiResortInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, ResortInterface, LodgingBusinessInterface { - use SkiResortTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use ResortTrait; - use LodgingBusinessTrait; + use SkiResortTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use ResortTrait; + use LodgingBusinessTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SkiResort'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SkiResort'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SkiResort'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SkiResort'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A ski resort.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A ski resort.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableLanguage' => ['Text', 'Language'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'checkinTime' => ['DateTime', 'Time'], - 'checkoutTime' => ['DateTime', 'Time'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableLanguage' => ['Text', 'Language'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'checkinTime' => ['DateTime', 'Time'], + 'checkoutTime' => ['DateTime', 'Time'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'checkinTime' => 'The earliest someone may check into a lodging establishment.', - 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'checkinTime' => 'The earliest someone may check into a lodging establishment.', + 'checkoutTime' => 'The latest someone may check out of a lodging establishment.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Skin.php b/src/models/jsonld/Skin.php index 9e91f91ea..dd083c9df 100644 --- a/src/models/jsonld/Skin.php +++ b/src/models/jsonld/Skin.php @@ -23,157 +23,157 @@ */ class Skin extends MetaJsonLd implements SkinInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use SkinTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Skin'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Skin'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Skin assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SkinTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Skin'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Skin'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Skin assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SocialEvent.php b/src/models/jsonld/SocialEvent.php index 0f70dadac..c3a6fe01f 100644 --- a/src/models/jsonld/SocialEvent.php +++ b/src/models/jsonld/SocialEvent.php @@ -23,204 +23,204 @@ */ class SocialEvent extends MetaJsonLd implements SocialEventInterface, EventInterface, ThingInterface { - use SocialEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SocialEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SocialEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Social event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SocialEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SocialEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SocialEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Social event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SocialMediaPosting.php b/src/models/jsonld/SocialMediaPosting.php index 52bc82070..0dd8e7bb8 100644 --- a/src/models/jsonld/SocialMediaPosting.php +++ b/src/models/jsonld/SocialMediaPosting.php @@ -24,365 +24,365 @@ */ class SocialMediaPosting extends MetaJsonLd implements SocialMediaPostingInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use SocialMediaPostingTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use SocialMediaPostingTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SocialMediaPosting'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SocialMediaPosting'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SocialMediaPosting'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SocialMediaPosting'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A post to a social media platform, including blog posts, tweets, Facebook posts, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A post to a social media platform, including blog posts, tweets, Facebook posts, etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sharedContent' => ['CreativeWork'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sharedContent' => ['CreativeWork'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sharedContent' => 'A CreativeWork such as an image, video, or audio clip shared as part of this posting.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SoftwareApplication.php b/src/models/jsonld/SoftwareApplication.php index 7ff291786..73c9e1463 100644 --- a/src/models/jsonld/SoftwareApplication.php +++ b/src/models/jsonld/SoftwareApplication.php @@ -23,394 +23,394 @@ */ class SoftwareApplication extends MetaJsonLd implements SoftwareApplicationInterface, CreativeWorkInterface, ThingInterface { - use SoftwareApplicationTrait; - use CreativeWorkTrait; - use ThingTrait; + use SoftwareApplicationTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SoftwareApplication'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SoftwareApplication'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SoftwareApplication'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SoftwareApplication'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A software application.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A software application.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'applicationCategory' => ['URL', 'Text'], - 'applicationSubCategory' => ['URL', 'Text'], - 'applicationSuite' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'availableOnDevice' => ['Text'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countriesNotSupported' => ['Text'], - 'countriesSupported' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'device' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downloadUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'featureList' => ['URL', 'Text'], - 'fileFormat' => ['Text', 'URL'], - 'fileSize' => ['Text'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'installUrl' => ['URL'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'memoryRequirements' => ['Text', 'URL'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'operatingSystem' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'permissions' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'processorRequirements' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releaseNotes' => ['Text', 'URL'], - 'releasedEvent' => ['PublicationEvent'], - 'requirements' => ['Text', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'screenshot' => ['URL', 'ImageObject'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'softwareAddOn' => ['SoftwareApplication'], - 'softwareHelp' => ['CreativeWork'], - 'softwareRequirements' => ['Text', 'URL'], - 'softwareVersion' => ['Text'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'storageRequirements' => ['URL', 'Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supportingData' => ['DataFeed'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'applicationCategory' => ['URL', 'Text'], + 'applicationSubCategory' => ['URL', 'Text'], + 'applicationSuite' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'availableOnDevice' => ['Text'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countriesNotSupported' => ['Text'], + 'countriesSupported' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'device' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downloadUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'featureList' => ['URL', 'Text'], + 'fileFormat' => ['Text', 'URL'], + 'fileSize' => ['Text'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'installUrl' => ['URL'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'memoryRequirements' => ['Text', 'URL'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'operatingSystem' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'permissions' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'processorRequirements' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releaseNotes' => ['Text', 'URL'], + 'releasedEvent' => ['PublicationEvent'], + 'requirements' => ['Text', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'screenshot' => ['URL', 'ImageObject'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'softwareAddOn' => ['SoftwareApplication'], + 'softwareHelp' => ['CreativeWork'], + 'softwareRequirements' => ['Text', 'URL'], + 'softwareVersion' => ['Text'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'storageRequirements' => ['URL', 'Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supportingData' => ['DataFeed'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', - 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', - 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'memoryRequirements' => 'Minimum memory requirements.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releaseNotes' => 'Description of what changed in this version.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'screenshot' => 'A link to a screenshot image of the app.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'softwareAddOn' => 'Additional content for a software application.', - 'softwareHelp' => 'Software application help.', - 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'softwareVersion' => 'Version of the software instance.', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'storageRequirements' => 'Storage requirements (free space required).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supportingData' => 'Supporting data for a SoftwareApplication.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', + 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', + 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'memoryRequirements' => 'Minimum memory requirements.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releaseNotes' => 'Description of what changed in this version.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'screenshot' => 'A link to a screenshot image of the app.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'softwareAddOn' => 'Additional content for a software application.', + 'softwareHelp' => 'Software application help.', + 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'softwareVersion' => 'Version of the software instance.', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'storageRequirements' => 'Storage requirements (free space required).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supportingData' => 'Supporting data for a SoftwareApplication.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SoftwareSourceCode.php b/src/models/jsonld/SoftwareSourceCode.php index 54748fdb1..7bf8642e1 100644 --- a/src/models/jsonld/SoftwareSourceCode.php +++ b/src/models/jsonld/SoftwareSourceCode.php @@ -24,360 +24,360 @@ */ class SoftwareSourceCode extends MetaJsonLd implements SoftwareSourceCodeInterface, CreativeWorkInterface, ThingInterface { - use SoftwareSourceCodeTrait; - use CreativeWorkTrait; - use ThingTrait; + use SoftwareSourceCodeTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SoftwareSourceCode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SoftwareSourceCode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SoftwareSourceCode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SoftwareSourceCode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'codeRepository' => ['URL'], - 'codeSampleType' => ['Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'programmingLanguage' => ['Text', 'ComputerLanguage'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'runtime' => ['Text'], - 'runtimePlatform' => ['Text'], - 'sameAs' => ['URL'], - 'sampleType' => ['Text'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'targetProduct' => ['SoftwareApplication'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'codeRepository' => ['URL'], + 'codeSampleType' => ['Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'programmingLanguage' => ['Text', 'ComputerLanguage'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'runtime' => ['Text'], + 'runtimePlatform' => ['Text'], + 'sameAs' => ['URL'], + 'sampleType' => ['Text'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'targetProduct' => ['SoftwareApplication'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'codeRepository' => 'Link to the repository where the un-compiled, human readable code and related code is located (SVN, GitHub, CodePlex).', - 'codeSampleType' => 'What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'programmingLanguage' => 'The computer programming language.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - 'runtime' => 'Runtime platform or script interpreter dependencies (example: Java v1, Python 2.3, .NET Framework 3.0).', - 'runtimePlatform' => 'Runtime platform or script interpreter dependencies (example: Java v1, Python 2.3, .NET Framework 3.0).', - '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.', - 'sampleType' => 'What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'targetProduct' => 'Target Operating System / Product to which the code applies. If applies to several versions, just the product name can be used.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'codeRepository' => 'Link to the repository where the un-compiled, human readable code and related code is located (SVN, GitHub, CodePlex).', + 'codeSampleType' => 'What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'programmingLanguage' => 'The computer programming language.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + 'runtime' => 'Runtime platform or script interpreter dependencies (example: Java v1, Python 2.3, .NET Framework 3.0).', + 'runtimePlatform' => 'Runtime platform or script interpreter dependencies (example: Java v1, Python 2.3, .NET Framework 3.0).', + '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.', + 'sampleType' => 'What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'targetProduct' => 'Target Operating System / Product to which the code applies. If applies to several versions, just the product name can be used.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SoldOut.php b/src/models/jsonld/SoldOut.php index 6e1a31fb9..1cc71a412 100644 --- a/src/models/jsonld/SoldOut.php +++ b/src/models/jsonld/SoldOut.php @@ -23,126 +23,126 @@ */ class SoldOut extends MetaJsonLd implements SoldOutInterface, ItemAvailabilityInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SoldOutTrait; - use ItemAvailabilityTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SoldOut'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SoldOut'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ItemAvailability'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item has sold out.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SoldOutTrait; + use ItemAvailabilityTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SoldOut'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SoldOut'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ItemAvailability'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item has sold out.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SolveMathAction.php b/src/models/jsonld/SolveMathAction.php index acedde858..bf48815c3 100644 --- a/src/models/jsonld/SolveMathAction.php +++ b/src/models/jsonld/SolveMathAction.php @@ -24,148 +24,148 @@ */ class SolveMathAction extends MetaJsonLd implements SolveMathActionInterface, ActionInterface, ThingInterface { - use SolveMathActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SolveMathAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SolveMathAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The action that takes in a math expression and directs users to a page potentially capable of solving/simplifying that expression.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eduQuestionType' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'eduQuestionType' => 'For questions that are part of learning resources (e.g. Quiz), eduQuestionType indicates the format of question being given. Example: "Multiple choice", "Open ended", "Flashcard".', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SolveMathActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SolveMathAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SolveMathAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The action that takes in a math expression and directs users to a page potentially capable of solving/simplifying that expression.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eduQuestionType' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'eduQuestionType' => 'For questions that are part of learning resources (e.g. Quiz), eduQuestionType indicates the format of question being given. Example: "Multiple choice", "Open ended", "Flashcard".', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SomeProducts.php b/src/models/jsonld/SomeProducts.php index f044a73e5..73e877cb2 100644 --- a/src/models/jsonld/SomeProducts.php +++ b/src/models/jsonld/SomeProducts.php @@ -23,234 +23,234 @@ */ class SomeProducts extends MetaJsonLd implements SomeProductsInterface, ProductInterface, ThingInterface { - use SomeProductsTrait; - use ProductTrait; - use ThingTrait; + use SomeProductsTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SomeProducts'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SomeProducts'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SomeProducts'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SomeProducts'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A placeholder for multiple similar products of the same kind.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A placeholder for multiple similar products of the same kind.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'inventoryLevel' => ['QuantitativeValue'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'weight' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'inventoryLevel' => ['QuantitativeValue'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'weight' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'inventoryLevel' => 'The current approximate inventory level for the item or items.', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'weight' => 'The weight of the product or person.', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'inventoryLevel' => 'The current approximate inventory level for the item or items.', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'weight' => 'The weight of the product or person.', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SoundtrackAlbum.php b/src/models/jsonld/SoundtrackAlbum.php index 807b9ca0c..1b15db5ad 100644 --- a/src/models/jsonld/SoundtrackAlbum.php +++ b/src/models/jsonld/SoundtrackAlbum.php @@ -23,126 +23,126 @@ */ class SoundtrackAlbum extends MetaJsonLd implements SoundtrackAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SoundtrackAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SoundtrackAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SoundtrackAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'SoundtrackAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SoundtrackAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SoundtrackAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SoundtrackAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'SoundtrackAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SpeakableSpecification.php b/src/models/jsonld/SpeakableSpecification.php index 863ba79b2..3d7397075 100644 --- a/src/models/jsonld/SpeakableSpecification.php +++ b/src/models/jsonld/SpeakableSpecification.php @@ -26,126 +26,126 @@ */ class SpeakableSpecification extends MetaJsonLd implements SpeakableSpecificationInterface, IntangibleInterface, ThingInterface { - use SpeakableSpecificationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SpeakableSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SpeakableSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A SpeakableSpecification indicates (typically via [[xpath]] or [[cssSelector]]) sections of a document that are highlighted as particularly [[speakable]]. Instances of this type are expected to be used primarily as values of the [[speakable]] property.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'xpath' => ['XPathType'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SpeakableSpecificationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SpeakableSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SpeakableSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A SpeakableSpecification indicates (typically via [[xpath]] or [[cssSelector]]) sections of a document that are highlighted as particularly [[speakable]]. Instances of this type are expected to be used primarily as values of the [[speakable]] property.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'xpath' => ['XPathType'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SpecialAnnouncement.php b/src/models/jsonld/SpecialAnnouncement.php index 3f6408700..241129058 100644 --- a/src/models/jsonld/SpecialAnnouncement.php +++ b/src/models/jsonld/SpecialAnnouncement.php @@ -82,372 +82,372 @@ */ class SpecialAnnouncement extends MetaJsonLd implements SpecialAnnouncementInterface, CreativeWorkInterface, ThingInterface { - use SpecialAnnouncementTrait; - use CreativeWorkTrait; - use ThingTrait; + use SpecialAnnouncementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SpecialAnnouncement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SpecialAnnouncement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SpecialAnnouncement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SpecialAnnouncement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A SpecialAnnouncement combines a simple date-stamped textual information update\n with contextualized Web links and other structured data. It represents an information update made by a\n locally-oriented organization, for example schools, pharmacies, healthcare providers, community groups, police,\n local government.\n\nFor work in progress guidelines on Coronavirus-related markup see [this doc](https://docs.google.com/document/d/14ikaGCKxo50rRM7nvKSlbUpjyIk2WMQd3IkB1lItlrM/edit#).\n\nThe motivating scenario for SpecialAnnouncement is the [Coronavirus pandemic](https://en.wikipedia.org/wiki/2019%E2%80%9320_coronavirus_pandemic), and the initial vocabulary is oriented to this urgent situation. Schema.org\nexpect to improve the markup iteratively as it is deployed and as feedback emerges from use. In addition to our\nusual [Github entry](https://github.com/schemaorg/schemaorg/issues/2490), feedback comments can also be provided in [this document](https://docs.google.com/document/d/1fpdFFxk8s87CWwACs53SGkYv3aafSxz_DTtOQxMrBJQ/edit#).\n\n\nWhile this schema is designed to communicate urgent crisis-related information, it is not the same as an emergency warning technology like [CAP](https://en.wikipedia.org/wiki/Common_Alerting_Protocol), although there may be overlaps. The intent is to cover\nthe kinds of everyday practical information being posted to existing websites during an emergency situation.\n\nSeveral kinds of information can be provided:\n\nWe encourage the provision of \"name\", \"text\", \"datePosted\", \"expires\" (if appropriate), \"category\" and\n\"url\" as a simple baseline. It is important to provide a value for \"category\" where possible, most ideally as a well known\nURL from Wikipedia or Wikidata. In the case of the 2019-2020 Coronavirus pandemic, this should be \"https://en.wikipedia.org/w/index.php?title=2019-20\\_coronavirus\\_pandemic\" or \"https://www.wikidata.org/wiki/Q81068910\".\n\nFor many of the possible properties, values can either be simple links or an inline description, depending on whether a summary is available. For a link, provide just the URL of the appropriate page as the property's value. For an inline description, use a [[WebContent]] type, and provide the url as a property of that, alongside at least a simple \"[[text]]\" summary of the page. It is\nunlikely that a single SpecialAnnouncement will need all of the possible properties simultaneously.\n\nWe expect that in many cases the page referenced might contain more specialized structured data, e.g. contact info, [[openingHours]], [[Event]], [[FAQPage]] etc. By linking to those pages from a [[SpecialAnnouncement]] you can help make it clearer that the events are related to the situation (e.g. Coronavirus) indicated by the [[category]] property of the [[SpecialAnnouncement]].\n\nMany [[SpecialAnnouncement]]s will relate to particular regions and to identifiable local organizations. Use [[spatialCoverage]] for the region, and [[announcementLocation]] to indicate specific [[LocalBusiness]]es and [[CivicStructure]]s. If the announcement affects both a particular region and a specific location (for example, a library closure that serves an entire region), use both [[spatialCoverage]] and [[announcementLocation]].\n\nThe [[about]] property can be used to indicate entities that are the focus of the announcement. We now recommend using [[about]] only\nfor representing non-location entities (e.g. a [[Course]] or a [[RadioStation]]). For places, use [[announcementLocation]] and [[spatialCoverage]]. Consumers of this markup should be aware that the initial design encouraged the use of [[about]] for locations too.\n\nThe basic content of [[SpecialAnnouncement]] is similar to that of an [RSS](https://en.wikipedia.org/wiki/RSS) or [Atom](https://en.wikipedia.org/wiki/Atom_(Web_standard)) feed. For publishers without such feeds, basic feed-like information can be shared by posting\n[[SpecialAnnouncement]] updates in a page, e.g. using JSON-LD. For sites with Atom/RSS functionality, you can point to a feed\nwith the [[webFeed]] property. This can be a simple URL, or an inline [[DataFeed]] object, with [[encodingFormat]] providing\nmedia type information, e.g. \"application/rss+xml\" or \"application/atom+xml\"."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A SpecialAnnouncement combines a simple date-stamped textual information update\n with contextualized Web links and other structured data. It represents an information update made by a\n locally-oriented organization, for example schools, pharmacies, healthcare providers, community groups, police,\n local government.\n\nFor work in progress guidelines on Coronavirus-related markup see [this doc](https://docs.google.com/document/d/14ikaGCKxo50rRM7nvKSlbUpjyIk2WMQd3IkB1lItlrM/edit#).\n\nThe motivating scenario for SpecialAnnouncement is the [Coronavirus pandemic](https://en.wikipedia.org/wiki/2019%E2%80%9320_coronavirus_pandemic), and the initial vocabulary is oriented to this urgent situation. Schema.org\nexpect to improve the markup iteratively as it is deployed and as feedback emerges from use. In addition to our\nusual [Github entry](https://github.com/schemaorg/schemaorg/issues/2490), feedback comments can also be provided in [this document](https://docs.google.com/document/d/1fpdFFxk8s87CWwACs53SGkYv3aafSxz_DTtOQxMrBJQ/edit#).\n\n\nWhile this schema is designed to communicate urgent crisis-related information, it is not the same as an emergency warning technology like [CAP](https://en.wikipedia.org/wiki/Common_Alerting_Protocol), although there may be overlaps. The intent is to cover\nthe kinds of everyday practical information being posted to existing websites during an emergency situation.\n\nSeveral kinds of information can be provided:\n\nWe encourage the provision of \"name\", \"text\", \"datePosted\", \"expires\" (if appropriate), \"category\" and\n\"url\" as a simple baseline. It is important to provide a value for \"category\" where possible, most ideally as a well known\nURL from Wikipedia or Wikidata. In the case of the 2019-2020 Coronavirus pandemic, this should be \"https://en.wikipedia.org/w/index.php?title=2019-20\\_coronavirus\\_pandemic\" or \"https://www.wikidata.org/wiki/Q81068910\".\n\nFor many of the possible properties, values can either be simple links or an inline description, depending on whether a summary is available. For a link, provide just the URL of the appropriate page as the property's value. For an inline description, use a [[WebContent]] type, and provide the url as a property of that, alongside at least a simple \"[[text]]\" summary of the page. It is\nunlikely that a single SpecialAnnouncement will need all of the possible properties simultaneously.\n\nWe expect that in many cases the page referenced might contain more specialized structured data, e.g. contact info, [[openingHours]], [[Event]], [[FAQPage]] etc. By linking to those pages from a [[SpecialAnnouncement]] you can help make it clearer that the events are related to the situation (e.g. Coronavirus) indicated by the [[category]] property of the [[SpecialAnnouncement]].\n\nMany [[SpecialAnnouncement]]s will relate to particular regions and to identifiable local organizations. Use [[spatialCoverage]] for the region, and [[announcementLocation]] to indicate specific [[LocalBusiness]]es and [[CivicStructure]]s. If the announcement affects both a particular region and a specific location (for example, a library closure that serves an entire region), use both [[spatialCoverage]] and [[announcementLocation]].\n\nThe [[about]] property can be used to indicate entities that are the focus of the announcement. We now recommend using [[about]] only\nfor representing non-location entities (e.g. a [[Course]] or a [[RadioStation]]). For places, use [[announcementLocation]] and [[spatialCoverage]]. Consumers of this markup should be aware that the initial design encouraged the use of [[about]] for locations too.\n\nThe basic content of [[SpecialAnnouncement]] is similar to that of an [RSS](https://en.wikipedia.org/wiki/RSS) or [Atom](https://en.wikipedia.org/wiki/Atom_(Web_standard)) feed. For publishers without such feeds, basic feed-like information can be shared by posting\n[[SpecialAnnouncement]] updates in a page, e.g. using JSON-LD. For sites with Atom/RSS functionality, you can point to a feed\nwith the [[webFeed]] property. This can be a simple URL, or an inline [[DataFeed]] object, with [[encodingFormat]] providing\nmedia type information, e.g. \"application/rss+xml\" or \"application/atom+xml\"."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'announcementLocation' => ['CivicStructure', 'LocalBusiness'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePosted' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'diseasePreventionInfo' => ['WebContent', 'URL'], - 'diseaseSpreadStatistics' => ['WebContent', 'Observation', 'Dataset', 'URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'gettingTestedInfo' => ['WebContent', 'URL'], - 'governmentBenefitsInfo' => ['GovernmentService'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'newsUpdatesAndGuidelines' => ['WebContent', 'URL'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publicTransportClosuresInfo' => ['WebContent', 'URL'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'quarantineGuidelines' => ['URL', 'WebContent'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'schoolClosuresInfo' => ['WebContent', 'URL'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'travelBans' => ['URL', 'WebContent'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'webFeed' => ['DataFeed', 'URL'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'announcementLocation' => ['CivicStructure', 'LocalBusiness'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePosted' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'diseasePreventionInfo' => ['WebContent', 'URL'], + 'diseaseSpreadStatistics' => ['WebContent', 'Observation', 'Dataset', 'URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'gettingTestedInfo' => ['WebContent', 'URL'], + 'governmentBenefitsInfo' => ['GovernmentService'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'newsUpdatesAndGuidelines' => ['WebContent', 'URL'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publicTransportClosuresInfo' => ['WebContent', 'URL'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'quarantineGuidelines' => ['URL', 'WebContent'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'schoolClosuresInfo' => ['WebContent', 'URL'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'travelBans' => ['URL', 'WebContent'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'webFeed' => ['DataFeed', 'URL'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'announcementLocation' => 'Indicates a specific [[CivicStructure]] or [[LocalBusiness]] associated with the SpecialAnnouncement. For example, a specific testing facility or business with special opening hours. For a larger geographic region like a quarantine of an entire region, use [[spatialCoverage]].', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePosted' => 'Publication date of an online listing.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'diseasePreventionInfo' => 'Information about disease prevention.', - 'diseaseSpreadStatistics' => 'Statistical information about the spread of a disease, either as [[WebContent]], or described directly as a [[Dataset]], or the specific [[Observation]]s in the dataset. When a [[WebContent]] URL is provided, the page indicated might also contain more such markup.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'gettingTestedInfo' => 'Information about getting tested (for a [[MedicalCondition]]), e.g. in the context of a pandemic.', - 'governmentBenefitsInfo' => 'governmentBenefitsInfo provides information about government benefits associated with a SpecialAnnouncement.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'newsUpdatesAndGuidelines' => 'Indicates a page with news updates and guidelines. This could often be (but is not required to be) the main page containing [[SpecialAnnouncement]] markup on a site.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publicTransportClosuresInfo' => 'Information about public transport closures.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'quarantineGuidelines' => 'Guidelines about quarantine rules, e.g. in the context of a pandemic.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'schoolClosuresInfo' => 'Information about school closures.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'travelBans' => 'Information about travel bans, e.g. in the context of a pandemic.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'webFeed' => 'The URL for a feed, e.g. associated with a podcast series, blog, or series of date-stamped updates. This is usually RSS or Atom.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'announcementLocation' => 'Indicates a specific [[CivicStructure]] or [[LocalBusiness]] associated with the SpecialAnnouncement. For example, a specific testing facility or business with special opening hours. For a larger geographic region like a quarantine of an entire region, use [[spatialCoverage]].', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePosted' => 'Publication date of an online listing.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'diseasePreventionInfo' => 'Information about disease prevention.', + 'diseaseSpreadStatistics' => 'Statistical information about the spread of a disease, either as [[WebContent]], or described directly as a [[Dataset]], or the specific [[Observation]]s in the dataset. When a [[WebContent]] URL is provided, the page indicated might also contain more such markup.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'gettingTestedInfo' => 'Information about getting tested (for a [[MedicalCondition]]), e.g. in the context of a pandemic.', + 'governmentBenefitsInfo' => 'governmentBenefitsInfo provides information about government benefits associated with a SpecialAnnouncement.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'newsUpdatesAndGuidelines' => 'Indicates a page with news updates and guidelines. This could often be (but is not required to be) the main page containing [[SpecialAnnouncement]] markup on a site.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publicTransportClosuresInfo' => 'Information about public transport closures.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'quarantineGuidelines' => 'Guidelines about quarantine rules, e.g. in the context of a pandemic.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'schoolClosuresInfo' => 'Information about school closures.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'travelBans' => 'Information about travel bans, e.g. in the context of a pandemic.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'webFeed' => 'The URL for a feed, e.g. associated with a podcast series, blog, or series of date-stamped updates. This is usually RSS or Atom.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Specialty.php b/src/models/jsonld/Specialty.php index 002a58efd..c46144488 100644 --- a/src/models/jsonld/Specialty.php +++ b/src/models/jsonld/Specialty.php @@ -24,125 +24,125 @@ */ class Specialty extends MetaJsonLd implements SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Specialty'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Specialty'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any branch of a field in which people typically develop specific expertise, usually after significant study, time, and effort.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Specialty'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Specialty'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any branch of a field in which people typically develop specific expertise, usually after significant study, time, and effort.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SpeechPathology.php b/src/models/jsonld/SpeechPathology.php index 66c86f276..3da6ee653 100644 --- a/src/models/jsonld/SpeechPathology.php +++ b/src/models/jsonld/SpeechPathology.php @@ -25,128 +25,128 @@ */ class SpeechPathology extends MetaJsonLd implements SpeechPathologyInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use SpeechPathologyTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SpeechPathology'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SpeechPathology'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The scientific study and treatment of defects, disorders, and malfunctions of speech and voice, as stuttering, lisping, or lalling, and of language disturbances, as aphasia or delayed language acquisition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SpeechPathologyTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SpeechPathology'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SpeechPathology'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The scientific study and treatment of defects, disorders, and malfunctions of speech and voice, as stuttering, lisping, or lalling, and of language disturbances, as aphasia or delayed language acquisition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SpokenWordAlbum.php b/src/models/jsonld/SpokenWordAlbum.php index 5ab72153e..1f28ef0aa 100644 --- a/src/models/jsonld/SpokenWordAlbum.php +++ b/src/models/jsonld/SpokenWordAlbum.php @@ -23,126 +23,126 @@ */ class SpokenWordAlbum extends MetaJsonLd implements SpokenWordAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SpokenWordAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SpokenWordAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SpokenWordAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'SpokenWordAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SpokenWordAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SpokenWordAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SpokenWordAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'SpokenWordAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SportingGoodsStore.php b/src/models/jsonld/SportingGoodsStore.php index f56c788df..dc74e11a9 100644 --- a/src/models/jsonld/SportingGoodsStore.php +++ b/src/models/jsonld/SportingGoodsStore.php @@ -23,331 +23,331 @@ */ class SportingGoodsStore extends MetaJsonLd implements SportingGoodsStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use SportingGoodsStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use SportingGoodsStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SportingGoodsStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SportingGoodsStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SportingGoodsStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SportingGoodsStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A sporting goods store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A sporting goods store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SportsActivityLocation.php b/src/models/jsonld/SportsActivityLocation.php index eb82ab438..98a598c5c 100644 --- a/src/models/jsonld/SportsActivityLocation.php +++ b/src/models/jsonld/SportsActivityLocation.php @@ -23,330 +23,330 @@ */ class SportsActivityLocation extends MetaJsonLd implements SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SportsActivityLocation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SportsActivityLocation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SportsActivityLocation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SportsActivityLocation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A sports location, such as a playing field.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A sports location, such as a playing field.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SportsClub.php b/src/models/jsonld/SportsClub.php index 8df26f6b3..50cfc5234 100644 --- a/src/models/jsonld/SportsClub.php +++ b/src/models/jsonld/SportsClub.php @@ -23,331 +23,331 @@ */ class SportsClub extends MetaJsonLd implements SportsClubInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use SportsClubTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use SportsClubTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SportsClub'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SportsClub'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SportsClub'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SportsClub'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A sports club.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A sports club.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SportsEvent.php b/src/models/jsonld/SportsEvent.php index 6dc9879fd..75ba2c2cf 100644 --- a/src/models/jsonld/SportsEvent.php +++ b/src/models/jsonld/SportsEvent.php @@ -23,212 +23,212 @@ */ class SportsEvent extends MetaJsonLd implements SportsEventInterface, EventInterface, ThingInterface { - use SportsEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SportsEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SportsEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Sports event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'awayTeam' => ['SportsTeam', 'Person'], - 'competitor' => ['SportsTeam', 'Person'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'homeTeam' => ['SportsTeam', 'Person'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'sport' => ['Text', 'URL'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'awayTeam' => 'The away team in a sports event.', - 'competitor' => 'A competitor in a sports event.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'homeTeam' => 'The home team in a sports event.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'sport' => 'A type of sport (e.g. Baseball).', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SportsEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SportsEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SportsEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Sports event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'awayTeam' => ['SportsTeam', 'Person'], + 'competitor' => ['SportsTeam', 'Person'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'homeTeam' => ['SportsTeam', 'Person'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'sport' => ['Text', 'URL'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'awayTeam' => 'The away team in a sports event.', + 'competitor' => 'A competitor in a sports event.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'homeTeam' => 'The home team in a sports event.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'sport' => 'A type of sport (e.g. Baseball).', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SportsOrganization.php b/src/models/jsonld/SportsOrganization.php index 1032176f6..d1b292281 100644 --- a/src/models/jsonld/SportsOrganization.php +++ b/src/models/jsonld/SportsOrganization.php @@ -24,256 +24,256 @@ */ class SportsOrganization extends MetaJsonLd implements SportsOrganizationInterface, OrganizationInterface, ThingInterface { - use SportsOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use SportsOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SportsOrganization'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SportsOrganization'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SportsOrganization'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SportsOrganization'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the collection of all sports organizations, including sports teams, governing bodies, and sports associations.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the collection of all sports organizations, including sports teams, governing bodies, and sports associations.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'sport' => ['Text', 'URL'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'sport' => ['Text', 'URL'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'sport' => 'A type of sport (e.g. Baseball).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'sport' => 'A type of sport (e.g. Baseball).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SportsTeam.php b/src/models/jsonld/SportsTeam.php index c03f02e28..1bea0c2f2 100644 --- a/src/models/jsonld/SportsTeam.php +++ b/src/models/jsonld/SportsTeam.php @@ -23,263 +23,263 @@ */ class SportsTeam extends MetaJsonLd implements SportsTeamInterface, SportsOrganizationInterface, OrganizationInterface, ThingInterface { - use SportsTeamTrait; - use SportsOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use SportsTeamTrait; + use SportsOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SportsTeam'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SportsTeam'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SportsTeam'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SportsTeam'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Organization: Sports team.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Organization: Sports team.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'athlete' => ['Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'coach' => ['Person'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'gender' => ['GenderType', 'Text'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'sport' => ['Text', 'URL'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'athlete' => ['Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'coach' => ['Person'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'gender' => ['GenderType', 'Text'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'sport' => ['Text', 'URL'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'athlete' => 'A person that acts as performing member of a sports team; a player as opposed to a coach.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'coach' => 'A person that acts in a coaching role for a sports team.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gender' => 'Gender of something, typically a [[Person]], but possibly also fictional characters, animals, etc. While https://schema.org/Male and https://schema.org/Female may be used, text strings are also acceptable for people who do not identify as a binary gender. The [[gender]] property can also be used in an extended sense to cover e.g. the gender of sports teams. As with the gender of individuals, we do not try to enumerate all possibilities. A mixed-gender [[SportsTeam]] can be indicated with a text value of "Mixed".', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'sport' => 'A type of sport (e.g. Baseball).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'athlete' => 'A person that acts as performing member of a sports team; a player as opposed to a coach.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'coach' => 'A person that acts in a coaching role for a sports team.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gender' => 'Gender of something, typically a [[Person]], but possibly also fictional characters, animals, etc. While https://schema.org/Male and https://schema.org/Female may be used, text strings are also acceptable for people who do not identify as a binary gender. The [[gender]] property can also be used in an extended sense to cover e.g. the gender of sports teams. As with the gender of individuals, we do not try to enumerate all possibilities. A mixed-gender [[SportsTeam]] can be indicated with a text value of "Mixed".', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'sport' => 'A type of sport (e.g. Baseball).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/SpreadsheetDigitalDocument.php b/src/models/jsonld/SpreadsheetDigitalDocument.php index f4c63b421..48d54ce44 100644 --- a/src/models/jsonld/SpreadsheetDigitalDocument.php +++ b/src/models/jsonld/SpreadsheetDigitalDocument.php @@ -23,349 +23,349 @@ */ class SpreadsheetDigitalDocument extends MetaJsonLd implements SpreadsheetDigitalDocumentInterface, DigitalDocumentInterface, CreativeWorkInterface, ThingInterface { - use SpreadsheetDigitalDocumentTrait; - use DigitalDocumentTrait; - use CreativeWorkTrait; - use ThingTrait; + use SpreadsheetDigitalDocumentTrait; + use DigitalDocumentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SpreadsheetDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SpreadsheetDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SpreadsheetDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SpreadsheetDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A spreadsheet file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A spreadsheet file.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/StadiumOrArena.php b/src/models/jsonld/StadiumOrArena.php index 33c5709a8..ab909b96d 100644 --- a/src/models/jsonld/StadiumOrArena.php +++ b/src/models/jsonld/StadiumOrArena.php @@ -23,332 +23,332 @@ */ class StadiumOrArena extends MetaJsonLd implements StadiumOrArenaInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface, CivicStructureInterface { - use StadiumOrArenaTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; - use CivicStructureTrait; + use StadiumOrArenaTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; + use CivicStructureTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StadiumOrArena'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StadiumOrArena'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StadiumOrArena'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StadiumOrArena'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A stadium.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A stadium.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/StagedContent.php b/src/models/jsonld/StagedContent.php index e07bf71e6..2b928c747 100644 --- a/src/models/jsonld/StagedContent.php +++ b/src/models/jsonld/StagedContent.php @@ -31,126 +31,126 @@ */ class StagedContent extends MetaJsonLd implements StagedContentInterface, MediaManipulationRatingEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use StagedContentTrait; - use MediaManipulationRatingEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StagedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StagedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Content coded 'staged content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'staged content': A video that has been created using actors or similarly contrived.\n\nFor an [[ImageObject]] to be 'staged content': An image that was created using actors or similarly contrived, such as a screenshot of a fake tweet.\n\nFor an [[ImageObject]] with embedded text to be 'staged content': An image that was created using actors or similarly contrived, such as a screenshot of a fake tweet.\n\nFor an [[AudioObject]] to be 'staged content': Audio that has been created using actors or similarly contrived."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StagedContentTrait; + use MediaManipulationRatingEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StagedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StagedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Content coded 'staged content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'staged content': A video that has been created using actors or similarly contrived.\n\nFor an [[ImageObject]] to be 'staged content': An image that was created using actors or similarly contrived, such as a screenshot of a fake tweet.\n\nFor an [[ImageObject]] with embedded text to be 'staged content': An image that was created using actors or similarly contrived, such as a screenshot of a fake tweet.\n\nFor an [[AudioObject]] to be 'staged content': Audio that has been created using actors or similarly contrived."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/StagesHealthAspect.php b/src/models/jsonld/StagesHealthAspect.php index 41f95f73d..80e05f78f 100644 --- a/src/models/jsonld/StagesHealthAspect.php +++ b/src/models/jsonld/StagesHealthAspect.php @@ -23,126 +23,126 @@ */ class StagesHealthAspect extends MetaJsonLd implements StagesHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use StagesHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StagesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StagesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Stages that can be observed from a topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StagesHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StagesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StagesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Stages that can be observed from a topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/State.php b/src/models/jsonld/State.php index 5431b81b1..80b548b5a 100644 --- a/src/models/jsonld/State.php +++ b/src/models/jsonld/State.php @@ -23,213 +23,213 @@ */ class State extends MetaJsonLd implements StateInterface, AdministrativeAreaInterface, PlaceInterface, ThingInterface { - use StateTrait; - use AdministrativeAreaTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'State'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/State'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdministrativeArea'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A state or province of a country.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StateTrait; + use AdministrativeAreaTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'State'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/State'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdministrativeArea'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A state or province of a country.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Statement.php b/src/models/jsonld/Statement.php index 91b189f58..083c3d545 100644 --- a/src/models/jsonld/Statement.php +++ b/src/models/jsonld/Statement.php @@ -27,346 +27,346 @@ */ class Statement extends MetaJsonLd implements StatementInterface, CreativeWorkInterface, ThingInterface { - use StatementTrait; - use CreativeWorkTrait; - use ThingTrait; + use StatementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Statement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Statement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Statement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Statement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A statement about something, for example a fun or interesting fact. If known, the main entity this statement is about can be indicated using mainEntity. For more formal claims (e.g. in Fact Checking), consider using [[Claim]] instead. Use the [[text]] property to capture the text of the statement.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A statement about something, for example a fun or interesting fact. If known, the main entity this statement is about can be indicated using mainEntity. For more formal claims (e.g. in Fact Checking), consider using [[Claim]] instead. Use the [[text]] property to capture the text of the statement.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/StatisticalPopulation.php b/src/models/jsonld/StatisticalPopulation.php index 166a27f1d..63206ed40 100644 --- a/src/models/jsonld/StatisticalPopulation.php +++ b/src/models/jsonld/StatisticalPopulation.php @@ -37,128 +37,128 @@ */ class StatisticalPopulation extends MetaJsonLd implements StatisticalPopulationInterface, IntangibleInterface, ThingInterface { - use StatisticalPopulationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StatisticalPopulation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StatisticalPopulation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A StatisticalPopulation is a set of instances of a certain given type that satisfy some set of constraints. The property [[populationType]] is used to specify the type. Any property that can be used on instances of that type can appear on the statistical population. For example, a [[StatisticalPopulation]] representing all [[Person]]s with a [[homeLocation]] of East Podunk California would be described by applying the appropriate [[homeLocation]] and [[populationType]] properties to a [[StatisticalPopulation]] item that stands for that set of people.\nThe properties [[numConstraints]] and [[constrainingProperty]] are used to specify which of the populations properties are used to specify the population. Note that the sense of \"population\" used here is the general sense of a statistical\npopulation, and does not imply that the population consists of people. For example, a [[populationType]] of [[Event]] or [[NewsArticle]] could be used. See also [[Observation]], and the [data and datasets](/docs/data-and-datasets.html) overview for more details.\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'constrainingProperty' => ['Integer'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'numConstraints' => ['Integer'], - 'populationType' => ['Class'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'constrainingProperty' => 'Indicates a property used as a constraint to define a [[StatisticalPopulation]] with respect to the set of entities corresponding to an indicated type (via [[populationType]]).', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'numConstraints' => 'Indicates the number of constraints (not counting [[populationType]]) defined for a particular [[StatisticalPopulation]]. This helps applications understand if they have access to a sufficiently complete description of a [[StatisticalPopulation]].', - 'populationType' => 'Indicates the populationType common to all members of a [[StatisticalPopulation]].', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StatisticalPopulationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StatisticalPopulation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StatisticalPopulation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A StatisticalPopulation is a set of instances of a certain given type that satisfy some set of constraints. The property [[populationType]] is used to specify the type. Any property that can be used on instances of that type can appear on the statistical population. For example, a [[StatisticalPopulation]] representing all [[Person]]s with a [[homeLocation]] of East Podunk California would be described by applying the appropriate [[homeLocation]] and [[populationType]] properties to a [[StatisticalPopulation]] item that stands for that set of people.\nThe properties [[numConstraints]] and [[constrainingProperty]] are used to specify which of the populations properties are used to specify the population. Note that the sense of \"population\" used here is the general sense of a statistical\npopulation, and does not imply that the population consists of people. For example, a [[populationType]] of [[Event]] or [[NewsArticle]] could be used. See also [[Observation]], and the [data and datasets](/docs/data-and-datasets.html) overview for more details.\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'constrainingProperty' => ['Integer'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'numConstraints' => ['Integer'], + 'populationType' => ['Class'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'constrainingProperty' => 'Indicates a property used as a constraint to define a [[StatisticalPopulation]] with respect to the set of entities corresponding to an indicated type (via [[populationType]]).', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'numConstraints' => 'Indicates the number of constraints (not counting [[populationType]]) defined for a particular [[StatisticalPopulation]]. This helps applications understand if they have access to a sufficiently complete description of a [[StatisticalPopulation]].', + 'populationType' => 'Indicates the populationType common to all members of a [[StatisticalPopulation]].', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/StatusEnumeration.php b/src/models/jsonld/StatusEnumeration.php index bc8372d26..443866755 100644 --- a/src/models/jsonld/StatusEnumeration.php +++ b/src/models/jsonld/StatusEnumeration.php @@ -23,125 +23,125 @@ */ class StatusEnumeration extends MetaJsonLd implements StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use StatusEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StatusEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StatusEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Lists or enumerations dealing with status types.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StatusEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StatusEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StatusEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Lists or enumerations dealing with status types.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SteeringPositionValue.php b/src/models/jsonld/SteeringPositionValue.php index f51709b91..a20e80d58 100644 --- a/src/models/jsonld/SteeringPositionValue.php +++ b/src/models/jsonld/SteeringPositionValue.php @@ -23,142 +23,142 @@ */ class SteeringPositionValue extends MetaJsonLd implements SteeringPositionValueInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SteeringPositionValueTrait; - use QualitativeValueTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SteeringPositionValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SteeringPositionValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'QualitativeValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A value indicating a steering position.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'equal' => ['QualitativeValue'], - 'greater' => ['QualitativeValue'], - 'greaterOrEqual' => ['QualitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'lesser' => ['QualitativeValue'], - 'lesserOrEqual' => ['QualitativeValue'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'nonEqual' => ['QualitativeValue'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'], - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', - '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.', - 'name' => 'The name of the item.', - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.', - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SteeringPositionValueTrait; + use QualitativeValueTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SteeringPositionValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SteeringPositionValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'QualitativeValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A value indicating a steering position.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'equal' => ['QualitativeValue'], + 'greater' => ['QualitativeValue'], + 'greaterOrEqual' => ['QualitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'lesser' => ['QualitativeValue'], + 'lesserOrEqual' => ['QualitativeValue'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'nonEqual' => ['QualitativeValue'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', + '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.', + 'name' => 'The name of the item.', + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Store.php b/src/models/jsonld/Store.php index 85f07a0e3..64cd4c23e 100644 --- a/src/models/jsonld/Store.php +++ b/src/models/jsonld/Store.php @@ -23,330 +23,330 @@ */ class Store extends MetaJsonLd implements StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Store'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Store'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Store'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Store'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A retail good store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A retail good store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/StoreCreditRefund.php b/src/models/jsonld/StoreCreditRefund.php index 1d8e7734b..699cc27da 100644 --- a/src/models/jsonld/StoreCreditRefund.php +++ b/src/models/jsonld/StoreCreditRefund.php @@ -24,126 +24,126 @@ */ class StoreCreditRefund extends MetaJsonLd implements StoreCreditRefundInterface, RefundTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use StoreCreditRefundTrait; - use RefundTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StoreCreditRefund'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StoreCreditRefund'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RefundTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Specifies that the customer receives a store credit as refund when returning a product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StoreCreditRefundTrait; + use RefundTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StoreCreditRefund'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StoreCreditRefund'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RefundTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Specifies that the customer receives a store credit as refund when returning a product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/StrengthTraining.php b/src/models/jsonld/StrengthTraining.php index 980c419f8..8361c044b 100644 --- a/src/models/jsonld/StrengthTraining.php +++ b/src/models/jsonld/StrengthTraining.php @@ -24,126 +24,126 @@ */ class StrengthTraining extends MetaJsonLd implements StrengthTrainingInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use StrengthTrainingTrait; - use PhysicalActivityCategoryTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StrengthTraining'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StrengthTraining'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalActivityCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Physical activity that is engaged in to improve muscle and bone strength. Also referred to as resistance training.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StrengthTrainingTrait; + use PhysicalActivityCategoryTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StrengthTraining'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StrengthTraining'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalActivityCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Physical activity that is engaged in to improve muscle and bone strength. Also referred to as resistance training.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/StructuredValue.php b/src/models/jsonld/StructuredValue.php index 5065db314..d156ab349 100644 --- a/src/models/jsonld/StructuredValue.php +++ b/src/models/jsonld/StructuredValue.php @@ -25,122 +25,122 @@ */ class StructuredValue extends MetaJsonLd implements StructuredValueInterface, IntangibleInterface, ThingInterface { - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StructuredValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StructuredValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Structured values are used when the value of a property has a more complex structure than simply being a textual value or a reference to another thing.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StructuredValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StructuredValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Structured values are used when the value of a property has a more complex structure than simply being a textual value or a reference to another thing.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/StudioAlbum.php b/src/models/jsonld/StudioAlbum.php index 7bb480282..2f1f254eb 100644 --- a/src/models/jsonld/StudioAlbum.php +++ b/src/models/jsonld/StudioAlbum.php @@ -23,126 +23,126 @@ */ class StudioAlbum extends MetaJsonLd implements StudioAlbumInterface, MusicAlbumProductionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use StudioAlbumTrait; - use MusicAlbumProductionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'StudioAlbum'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/StudioAlbum'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicAlbumProductionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'StudioAlbum.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use StudioAlbumTrait; + use MusicAlbumProductionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'StudioAlbum'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/StudioAlbum'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicAlbumProductionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'StudioAlbum.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SubscribeAction.php b/src/models/jsonld/SubscribeAction.php index 6f77934d0..20d941598 100644 --- a/src/models/jsonld/SubscribeAction.php +++ b/src/models/jsonld/SubscribeAction.php @@ -31,147 +31,147 @@ */ class SubscribeAction extends MetaJsonLd implements SubscribeActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use SubscribeActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SubscribeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SubscribeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of forming a personal connection with someone/something (object) unidirectionally/asymmetrically to get updates pushed to.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, SubscribeAction implies that the subscriber acts as a passive agent being constantly/actively pushed for updates.\n* [[RegisterAction]]: Unlike RegisterAction, SubscribeAction implies that the agent is interested in continuing receiving updates from the object.\n* [[JoinAction]]: Unlike JoinAction, SubscribeAction implies that the agent is interested in continuing receiving updates from the object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SubscribeActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SubscribeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SubscribeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of forming a personal connection with someone/something (object) unidirectionally/asymmetrically to get updates pushed to.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, SubscribeAction implies that the subscriber acts as a passive agent being constantly/actively pushed for updates.\n* [[RegisterAction]]: Unlike RegisterAction, SubscribeAction implies that the agent is interested in continuing receiving updates from the object.\n* [[JoinAction]]: Unlike JoinAction, SubscribeAction implies that the agent is interested in continuing receiving updates from the object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Subscription.php b/src/models/jsonld/Subscription.php index fb3dc7ad8..36f65970e 100644 --- a/src/models/jsonld/Subscription.php +++ b/src/models/jsonld/Subscription.php @@ -24,126 +24,126 @@ */ class Subscription extends MetaJsonLd implements SubscriptionInterface, PriceComponentTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SubscriptionTrait; - use PriceComponentTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Subscription'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Subscription'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the subscription pricing component of the total price for an offered product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SubscriptionTrait; + use PriceComponentTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Subscription'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Subscription'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceComponentTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the subscription pricing component of the total price for an offered product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Substance.php b/src/models/jsonld/Substance.php index 8f48a0a6f..f9cfb86a5 100644 --- a/src/models/jsonld/Substance.php +++ b/src/models/jsonld/Substance.php @@ -24,142 +24,142 @@ */ class Substance extends MetaJsonLd implements SubstanceInterface, MedicalEntityInterface, ThingInterface { - use SubstanceTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Substance'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Substance'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Any matter of defined composition that has discrete existence, whose origin may be biological, mineral or chemical.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'activeIngredient' => ['Text'], - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumIntake' => ['MaximumDoseSchedule'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SubstanceTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Substance'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Substance'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Any matter of defined composition that has discrete existence, whose origin may be biological, mineral or chemical.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'activeIngredient' => ['Text'], + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumIntake' => ['MaximumDoseSchedule'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'activeIngredient' => 'An active ingredient, typically chemical compounds and/or biologic substances.', + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'maximumIntake' => 'Recommended intake of this supplement for a given population as defined by a specific recommending authority.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SubwayStation.php b/src/models/jsonld/SubwayStation.php index a7a869e89..b0c7c435e 100644 --- a/src/models/jsonld/SubwayStation.php +++ b/src/models/jsonld/SubwayStation.php @@ -23,215 +23,215 @@ */ class SubwayStation extends MetaJsonLd implements SubwayStationInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use SubwayStationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SubwayStation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SubwayStation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A subway station.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SubwayStationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SubwayStation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SubwayStation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A subway station.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Suite.php b/src/models/jsonld/Suite.php index a6bab2bc3..187d79569 100644 --- a/src/models/jsonld/Suite.php +++ b/src/models/jsonld/Suite.php @@ -28,243 +28,243 @@ */ class Suite extends MetaJsonLd implements SuiteInterface, AccommodationInterface, PlaceInterface, ThingInterface { - use SuiteTrait; - use AccommodationTrait; - use PlaceTrait; - use ThingTrait; + use SuiteTrait; + use AccommodationTrait; + use PlaceTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Suite'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Suite'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Suite'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Suite'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Accommodation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Accommodation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A suite in a hotel or other public accommodation, denotes a class of luxury accommodations, the key feature of which is multiple rooms (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Suite_(hotel)).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A suite in a hotel or other public accommodation, denotes a class of luxury accommodations, the key feature of which is multiple rooms (source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Suite_(hotel)).\n

\nSee also the dedicated document on the use of schema.org for marking up hotels and other forms of accommodations."; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accommodationCategory' => ['Text'], - 'accommodationFloorPlan' => ['FloorPlan'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'bed' => ['Text', 'BedDetails', 'BedType'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'floorLevel' => ['Text'], - 'floorSize' => ['QuantitativeValue'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'leaseLength' => ['QuantitativeValue', 'Duration'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'numberOfBathroomsTotal' => ['Integer'], - 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], - 'numberOfFullBathrooms' => ['Number'], - 'numberOfPartialBathrooms' => ['Number'], - 'numberOfRooms' => ['Number', 'QuantitativeValue'], - 'occupancy' => ['QuantitativeValue'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'permittedUsage' => ['Text'], - 'petsAllowed' => ['Text', 'Boolean'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'], - 'yearBuilt' => ['Number'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accommodationCategory' => ['Text'], + 'accommodationFloorPlan' => ['FloorPlan'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'bed' => ['Text', 'BedDetails', 'BedType'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'floorLevel' => ['Text'], + 'floorSize' => ['QuantitativeValue'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'leaseLength' => ['QuantitativeValue', 'Duration'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'numberOfBathroomsTotal' => ['Integer'], + 'numberOfBedrooms' => ['Number', 'QuantitativeValue'], + 'numberOfFullBathrooms' => ['Number'], + 'numberOfPartialBathrooms' => ['Number'], + 'numberOfRooms' => ['Number', 'QuantitativeValue'], + 'occupancy' => ['QuantitativeValue'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'permittedUsage' => ['Text'], + 'petsAllowed' => ['Text', 'Boolean'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + 'yearBuilt' => ['Number'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', - 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bed' => 'The type of bed or beds included in the accommodation. For the single case of just one bed of a certain type, you use bed directly with a text. If you want to indicate the quantity of a certain kind of bed, use an instance of BedDetails. For more detailed information, use the amenityFeature property.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', - 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', - 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', - 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', - 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', - 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', - 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', - 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.', - 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accommodationCategory' => 'Category of an [[Accommodation]], following real estate conventions, e.g. RESO (see [PropertySubType](https://ddwiki.reso.org/display/DDW17/PropertySubType+Field), and [PropertyType](https://ddwiki.reso.org/display/DDW17/PropertyType+Field) fields for suggested values).', + 'accommodationFloorPlan' => 'A floorplan of some [[Accommodation]].', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bed' => 'The type of bed or beds included in the accommodation. For the single case of just one bed of a certain type, you use bed directly with a text. If you want to indicate the quantity of a certain kind of bed, use an instance of BedDetails. For more detailed information, use the amenityFeature property.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'floorLevel' => 'The floor level for an [[Accommodation]] in a multi-storey building. Since counting systems [vary internationally](https://en.wikipedia.org/wiki/Storey#Consecutive_number_floor_designations), the local system should be used where possible.', + 'floorSize' => 'The size of the accommodation, e.g. in square meter or squarefoot. Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard ', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'leaseLength' => 'Length of the lease for some [[Accommodation]], either particular to some [[Offer]] or in some cases intrinsic to the property.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'numberOfBathroomsTotal' => 'The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): "The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.". See also [[numberOfRooms]].', + 'numberOfBedrooms' => 'The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].', + 'numberOfFullBathrooms' => 'Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).', + 'numberOfPartialBathrooms' => 'Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ', + 'numberOfRooms' => 'The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business. Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.', + 'occupancy' => 'The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person). Typical unit code(s): C62 for person', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'permittedUsage' => 'Indications regarding the permitted usage of the accommodation.', + 'petsAllowed' => 'Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + 'yearBuilt' => 'The year an [[Accommodation]] was constructed. This corresponds to the [YearBuilt field in RESO](https://ddwiki.reso.org/display/DDW17/YearBuilt+Field). ', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Sunday.php b/src/models/jsonld/Sunday.php index d582d77bf..a6e9f1e2c 100644 --- a/src/models/jsonld/Sunday.php +++ b/src/models/jsonld/Sunday.php @@ -23,126 +23,126 @@ */ class Sunday extends MetaJsonLd implements SundayInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SundayTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Sunday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Sunday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The day of the week between Saturday and Monday.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SundayTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Sunday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Sunday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The day of the week between Saturday and Monday.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SuperficialAnatomy.php b/src/models/jsonld/SuperficialAnatomy.php index 762d4db76..a621b08fd 100644 --- a/src/models/jsonld/SuperficialAnatomy.php +++ b/src/models/jsonld/SuperficialAnatomy.php @@ -40,148 +40,148 @@ */ class SuperficialAnatomy extends MetaJsonLd implements SuperficialAnatomyInterface, MedicalEntityInterface, ThingInterface { - use SuperficialAnatomyTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SuperficialAnatomy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SuperficialAnatomy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalEntity'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Anatomical features that can be observed by sight (without dissection), including the form and proportions of the human body as well as surface landmarks that correspond to deeper subcutaneous structures. Superficial anatomy plays an important role in sports medicine, phlebotomy, and other medical specialties as underlying anatomical structures can be identified through surface palpation. For example, during back surgery, superficial anatomy can be used to palpate and count vertebrae to find the site of incision. Or in phlebotomy, superficial anatomy can be used to locate an underlying vein; for example, the median cubital vein can be located by palpating the borders of the cubital fossa (such as the epicondyles of the humerus) and then looking for the superficial signs of the vein, such as size, prominence, ability to refill after depression, and feel of surrounding tissue support. As another example, in a subluxation (dislocation) of the glenohumeral joint, the bony structure becomes pronounced with the deltoid muscle failing to cover the glenohumeral joint allowing the edges of the scapula to be superficially visible. Here, the superficial anatomy is the visible edges of the scapula, implying the underlying dislocation of the joint (the related anatomical structure).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedAnatomy' => ['AnatomicalSystem', 'AnatomicalStructure'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'significance' => ['Text'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedAnatomy' => 'Anatomical systems or structures that relate to the superficial anatomy.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'significance' => 'The significance associated with the superficial anatomy; as an example, how characteristics of the superficial anatomy can suggest underlying medical conditions or courses of treatment.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SuperficialAnatomyTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SuperficialAnatomy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SuperficialAnatomy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalEntity'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Anatomical features that can be observed by sight (without dissection), including the form and proportions of the human body as well as surface landmarks that correspond to deeper subcutaneous structures. Superficial anatomy plays an important role in sports medicine, phlebotomy, and other medical specialties as underlying anatomical structures can be identified through surface palpation. For example, during back surgery, superficial anatomy can be used to palpate and count vertebrae to find the site of incision. Or in phlebotomy, superficial anatomy can be used to locate an underlying vein; for example, the median cubital vein can be located by palpating the borders of the cubital fossa (such as the epicondyles of the humerus) and then looking for the superficial signs of the vein, such as size, prominence, ability to refill after depression, and feel of surrounding tissue support. As another example, in a subluxation (dislocation) of the glenohumeral joint, the bony structure becomes pronounced with the deltoid muscle failing to cover the glenohumeral joint allowing the edges of the scapula to be superficially visible. Here, the superficial anatomy is the visible edges of the scapula, implying the underlying dislocation of the joint (the related anatomical structure).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedAnatomy' => ['AnatomicalSystem', 'AnatomicalStructure'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'significance' => ['Text'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedAnatomy' => 'Anatomical systems or structures that relate to the superficial anatomy.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'significance' => 'The significance associated with the superficial anatomy; as an example, how characteristics of the superficial anatomy can suggest underlying medical conditions or courses of treatment.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Surgical.php b/src/models/jsonld/Surgical.php index e13e0182d..07d6e2c0a 100644 --- a/src/models/jsonld/Surgical.php +++ b/src/models/jsonld/Surgical.php @@ -24,128 +24,128 @@ */ class Surgical extends MetaJsonLd implements SurgicalInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use SurgicalTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Surgical'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Surgical'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that pertains to treating diseases, injuries and deformities by manual and instrumental means.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SurgicalTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Surgical'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Surgical'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that pertains to treating diseases, injuries and deformities by manual and instrumental means.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SurgicalProcedure.php b/src/models/jsonld/SurgicalProcedure.php index d20158d4f..a5d65f6b9 100644 --- a/src/models/jsonld/SurgicalProcedure.php +++ b/src/models/jsonld/SurgicalProcedure.php @@ -24,151 +24,151 @@ */ class SurgicalProcedure extends MetaJsonLd implements SurgicalProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use SurgicalProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SurgicalProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SurgicalProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical procedure involving an incision with instruments; performed for diagnose, or therapeutic purposes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SurgicalProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SurgicalProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SurgicalProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical procedure involving an incision with instruments; performed for diagnose, or therapeutic purposes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SuspendAction.php b/src/models/jsonld/SuspendAction.php index 6e91c497f..242b4d344 100644 --- a/src/models/jsonld/SuspendAction.php +++ b/src/models/jsonld/SuspendAction.php @@ -24,147 +24,147 @@ */ class SuspendAction extends MetaJsonLd implements SuspendActionInterface, ControlActionInterface, ActionInterface, ThingInterface { - use SuspendActionTrait; - use ControlActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SuspendAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SuspendAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ControlAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of momentarily pausing a device or application (e.g. pause music playback or pause a timer).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SuspendActionTrait; + use ControlActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SuspendAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SuspendAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ControlAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of momentarily pausing a device or application (e.g. pause music playback or pause a timer).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Suspended.php b/src/models/jsonld/Suspended.php index 93a08d071..713339c06 100644 --- a/src/models/jsonld/Suspended.php +++ b/src/models/jsonld/Suspended.php @@ -23,127 +23,127 @@ */ class Suspended extends MetaJsonLd implements SuspendedInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SuspendedTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Suspended'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Suspended'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Suspended.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SuspendedTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Suspended'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Suspended'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Suspended.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/SymptomsHealthAspect.php b/src/models/jsonld/SymptomsHealthAspect.php index 218e9bf31..7cee155b9 100644 --- a/src/models/jsonld/SymptomsHealthAspect.php +++ b/src/models/jsonld/SymptomsHealthAspect.php @@ -23,126 +23,126 @@ */ class SymptomsHealthAspect extends MetaJsonLd implements SymptomsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use SymptomsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'SymptomsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/SymptomsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Symptoms or related symptoms of a Topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SymptomsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'SymptomsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/SymptomsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Symptoms or related symptoms of a Topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Synagogue.php b/src/models/jsonld/Synagogue.php index b6eb3ddf9..811e98c75 100644 --- a/src/models/jsonld/Synagogue.php +++ b/src/models/jsonld/Synagogue.php @@ -23,216 +23,216 @@ */ class Synagogue extends MetaJsonLd implements SynagogueInterface, PlaceOfWorshipInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use SynagogueTrait; - use PlaceOfWorshipTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Synagogue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Synagogue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PlaceOfWorship'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A synagogue.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use SynagogueTrait; + use PlaceOfWorshipTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Synagogue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Synagogue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PlaceOfWorship'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A synagogue.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TVClip.php b/src/models/jsonld/TVClip.php index 715aceb86..c2cf33c9f 100644 --- a/src/models/jsonld/TVClip.php +++ b/src/models/jsonld/TVClip.php @@ -23,371 +23,371 @@ */ class TVClip extends MetaJsonLd implements TVClipInterface, ClipInterface, CreativeWorkInterface, ThingInterface { - use TVClipTrait; - use ClipTrait; - use CreativeWorkTrait; - use ThingTrait; + use TVClipTrait; + use ClipTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TVClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TVClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TVClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TVClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A short TV program or a segment/part of a TV program.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A short TV program or a segment/part of a TV program.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'clipNumber' => ['Integer', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endOffset' => ['Number', 'HyperTocEntry'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfEpisode' => ['Episode'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'partOfTVSeries' => ['TVSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startOffset' => ['Number', 'HyperTocEntry'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'clipNumber' => ['Integer', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endOffset' => ['Number', 'HyperTocEntry'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfEpisode' => ['Episode'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'partOfTVSeries' => ['TVSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startOffset' => ['Number', 'HyperTocEntry'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'clipNumber' => 'Position of the clip within an ordered group of clips.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfEpisode' => 'The episode to which this clip belongs.', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'partOfTVSeries' => 'The TV series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'clipNumber' => 'Position of the clip within an ordered group of clips.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfEpisode' => 'The episode to which this clip belongs.', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'partOfTVSeries' => 'The TV series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TVEpisode.php b/src/models/jsonld/TVEpisode.php index 7b2a030b8..edfea9f9f 100644 --- a/src/models/jsonld/TVEpisode.php +++ b/src/models/jsonld/TVEpisode.php @@ -23,375 +23,375 @@ */ class TVEpisode extends MetaJsonLd implements TVEpisodeInterface, EpisodeInterface, CreativeWorkInterface, ThingInterface { - use TVEpisodeTrait; - use EpisodeTrait; - use CreativeWorkTrait; - use ThingTrait; + use TVEpisodeTrait; + use EpisodeTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TVEpisode'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TVEpisode'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TVEpisode'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TVEpisode'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Episode'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Episode'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A TV episode which can be part of a series or season.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A TV episode which can be part of a series or season.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'episodeNumber' => ['Text', 'Integer'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'partOfTVSeries' => ['TVSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'subtitleLanguage' => ['Language', 'Text'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'titleEIDR' => ['URL', 'Text'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'episodeNumber' => ['Text', 'Integer'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'partOfTVSeries' => ['TVSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'subtitleLanguage' => ['Language', 'Text'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'titleEIDR' => ['URL', 'Text'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'partOfTVSeries' => 'The TV series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'titleEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television. For example, the motion picture known as "Ghostbusters" has a titleEIDR of "10.5240/7EC7-228A-510A-053E-CBB8-J". This title (or work) may have several variants, which EIDR calls "edits". See [[editEIDR]]. Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'episodeNumber' => 'Position of the episode within an ordered group of episodes.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'partOfTVSeries' => 'The TV series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'subtitleLanguage' => 'Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'titleEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing at the most general/abstract level, a work of film or television. For example, the motion picture known as "Ghostbusters" has a titleEIDR of "10.5240/7EC7-228A-510A-053E-CBB8-J". This title (or work) may have several variants, which EIDR calls "edits". See [[editEIDR]]. Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TVSeason.php b/src/models/jsonld/TVSeason.php index 01f855eec..59b7703e1 100644 --- a/src/models/jsonld/TVSeason.php +++ b/src/models/jsonld/TVSeason.php @@ -23,371 +23,371 @@ */ class TVSeason extends MetaJsonLd implements TVSeasonInterface, CreativeWorkSeasonInterface, CreativeWorkInterface, ThingInterface { - use TVSeasonTrait; - use CreativeWorkSeasonTrait; - use CreativeWorkTrait; - use ThingTrait; + use TVSeasonTrait; + use CreativeWorkSeasonTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TVSeason'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TVSeason'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TVSeason'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TVSeason'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeason'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeason'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Season dedicated to TV broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Season dedicated to TV broadcast and associated online delivery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'episode' => ['Episode'], - 'episodes' => ['Episode'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'numberOfEpisodes' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'partOfTVSeries' => ['TVSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'seasonNumber' => ['Text', 'Integer'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'episode' => ['Episode'], + 'episodes' => ['Episode'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'numberOfEpisodes' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'partOfTVSeries' => ['TVSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'seasonNumber' => ['Text', 'Integer'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'episode' => 'An episode of a TV, radio or game media within a series or season.', - 'episodes' => 'An episode of a TV/radio series or season.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'numberOfEpisodes' => 'The number of episodes in this season or series.', - '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. ', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'partOfTVSeries' => 'The TV series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'seasonNumber' => 'Position of the season within an ordered group of seasons.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'episode' => 'An episode of a TV, radio or game media within a series or season.', + 'episodes' => 'An episode of a TV/radio series or season.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'numberOfEpisodes' => 'The number of episodes in this season or series.', + '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. ', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'partOfTVSeries' => 'The TV series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'seasonNumber' => 'Position of the season within an ordered group of seasons.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TVSeries.php b/src/models/jsonld/TVSeries.php index 4462f94bc..cf105765a 100644 --- a/src/models/jsonld/TVSeries.php +++ b/src/models/jsonld/TVSeries.php @@ -24,383 +24,383 @@ */ class TVSeries extends MetaJsonLd implements TVSeriesInterface, CreativeWorkInterface, ThingInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface { - use TVSeriesTrait; - use CreativeWorkTrait; - use ThingTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; + use TVSeriesTrait; + use CreativeWorkTrait; + use ThingTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TVSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TVSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TVSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TVSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'CreativeWorkSeries dedicated to TV broadcast and associated online delivery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'CreativeWorkSeries dedicated to TV broadcast and associated online delivery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'containsSeason' => ['CreativeWorkSeason'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'episode' => ['Episode'], - 'episodes' => ['Episode'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'numberOfEpisodes' => ['Integer'], - 'numberOfSeasons' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'season' => ['URL', 'CreativeWorkSeason'], - 'seasons' => ['CreativeWorkSeason'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'containsSeason' => ['CreativeWorkSeason'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'episode' => ['Episode'], + 'episodes' => ['Episode'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'numberOfEpisodes' => ['Integer'], + 'numberOfSeasons' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'season' => ['URL', 'CreativeWorkSeason'], + 'seasons' => ['CreativeWorkSeason'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'containsSeason' => 'A season that is part of the media series.', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'episode' => 'An episode of a TV, radio or game media within a series or season.', - 'episodes' => 'An episode of a TV/radio series or season.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - 'numberOfEpisodes' => 'The number of episodes in this season or series.', - 'numberOfSeasons' => 'The number of seasons in this series.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'season' => 'A season in a media series.', - 'seasons' => 'A season in a media series.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'containsSeason' => 'A season that is part of the media series.', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'episode' => 'An episode of a TV, radio or game media within a series or season.', + 'episodes' => 'An episode of a TV/radio series or season.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + 'numberOfEpisodes' => 'The number of episodes in this season or series.', + 'numberOfSeasons' => 'The number of seasons in this series.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'season' => 'A season in a media series.', + 'seasons' => 'A season in a media series.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Table.php b/src/models/jsonld/Table.php index 33d4c0d4b..d15cdad69 100644 --- a/src/models/jsonld/Table.php +++ b/src/models/jsonld/Table.php @@ -23,351 +23,351 @@ */ class Table extends MetaJsonLd implements TableInterface, WebPageElementInterface, CreativeWorkInterface, ThingInterface { - use TableTrait; - use WebPageElementTrait; - use CreativeWorkTrait; - use ThingTrait; + use TableTrait; + use WebPageElementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Table'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Table'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Table'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Table'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A table on a Web page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A table on a Web page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'xpath' => ['XPathType'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'xpath' => ['XPathType'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TakeAction.php b/src/models/jsonld/TakeAction.php index d03f8ec45..d66b37a27 100644 --- a/src/models/jsonld/TakeAction.php +++ b/src/models/jsonld/TakeAction.php @@ -26,151 +26,151 @@ */ class TakeAction extends MetaJsonLd implements TakeActionInterface, TransferActionInterface, ActionInterface, ThingInterface { - use TakeActionTrait; - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TakeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TakeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TransferAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of gaining ownership of an object from an origin. Reciprocal of GiveAction.\n\nRelated actions:\n\n* [[GiveAction]]: The reciprocal of TakeAction.\n* [[ReceiveAction]]: Unlike ReceiveAction, TakeAction implies that ownership has been transferred.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TakeActionTrait; + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TakeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TakeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TransferAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of gaining ownership of an object from an origin. Reciprocal of GiveAction.\n\nRelated actions:\n\n* [[GiveAction]]: The reciprocal of TakeAction.\n* [[ReceiveAction]]: Unlike ReceiveAction, TakeAction implies that ownership has been transferred.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TattooParlor.php b/src/models/jsonld/TattooParlor.php index 2a8ed68f8..91a30e591 100644 --- a/src/models/jsonld/TattooParlor.php +++ b/src/models/jsonld/TattooParlor.php @@ -23,331 +23,331 @@ */ class TattooParlor extends MetaJsonLd implements TattooParlorInterface, HealthAndBeautyBusinessInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use TattooParlorTrait; - use HealthAndBeautyBusinessTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use TattooParlorTrait; + use HealthAndBeautyBusinessTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TattooParlor'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TattooParlor'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TattooParlor'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TattooParlor'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAndBeautyBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A tattoo parlor.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A tattoo parlor.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Taxi.php b/src/models/jsonld/Taxi.php index dc9280b2d..94ddd6435 100644 --- a/src/models/jsonld/Taxi.php +++ b/src/models/jsonld/Taxi.php @@ -23,171 +23,171 @@ */ class Taxi extends MetaJsonLd implements TaxiInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use TaxiTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Taxi'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Taxi'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A taxi.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TaxiTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Taxi'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Taxi'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A taxi.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TaxiReservation.php b/src/models/jsonld/TaxiReservation.php index 7ea89d0cc..b30299e3b 100644 --- a/src/models/jsonld/TaxiReservation.php +++ b/src/models/jsonld/TaxiReservation.php @@ -25,155 +25,155 @@ */ class TaxiReservation extends MetaJsonLd implements TaxiReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use TaxiReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TaxiReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TaxiReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation for a taxi.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'partySize' => ['QuantitativeValue', 'Integer'], - 'pickupLocation' => ['Place'], - 'pickupTime' => ['DateTime'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'partySize' => 'Number of people the reservation should accommodate.', - 'pickupLocation' => 'Where a taxi will pick up a passenger or a rental car can be picked up.', - 'pickupTime' => 'When a taxi will pick up a passenger or a rental car can be picked up.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TaxiReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TaxiReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TaxiReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation for a taxi.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'partySize' => ['QuantitativeValue', 'Integer'], + 'pickupLocation' => ['Place'], + 'pickupTime' => ['DateTime'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'partySize' => 'Number of people the reservation should accommodate.', + 'pickupLocation' => 'Where a taxi will pick up a passenger or a rental car can be picked up.', + 'pickupTime' => 'When a taxi will pick up a passenger or a rental car can be picked up.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TaxiService.php b/src/models/jsonld/TaxiService.php index c48fdc88c..fa6c386ec 100644 --- a/src/models/jsonld/TaxiService.php +++ b/src/models/jsonld/TaxiService.php @@ -24,171 +24,171 @@ */ class TaxiService extends MetaJsonLd implements TaxiServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use TaxiServiceTrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TaxiService'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TaxiService'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A service for a vehicle for hire with a driver for local travel. Fares are usually calculated based on distance traveled.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TaxiServiceTrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TaxiService'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TaxiService'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A service for a vehicle for hire with a driver for local travel. Fares are usually calculated based on distance traveled.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TaxiStand.php b/src/models/jsonld/TaxiStand.php index b7880ab8f..978b0966f 100644 --- a/src/models/jsonld/TaxiStand.php +++ b/src/models/jsonld/TaxiStand.php @@ -23,215 +23,215 @@ */ class TaxiStand extends MetaJsonLd implements TaxiStandInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use TaxiStandTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TaxiStand'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TaxiStand'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A taxi stand.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TaxiStandTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TaxiStand'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TaxiStand'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A taxi stand.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TaxiVehicleUsage.php b/src/models/jsonld/TaxiVehicleUsage.php index a4bb65909..01bf1fda8 100644 --- a/src/models/jsonld/TaxiVehicleUsage.php +++ b/src/models/jsonld/TaxiVehicleUsage.php @@ -23,126 +23,126 @@ */ class TaxiVehicleUsage extends MetaJsonLd implements TaxiVehicleUsageInterface, CarUsageTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TaxiVehicleUsageTrait; - use CarUsageTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TaxiVehicleUsage'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TaxiVehicleUsage'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CarUsageType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates the usage of the car as a taxi.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TaxiVehicleUsageTrait; + use CarUsageTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TaxiVehicleUsage'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TaxiVehicleUsage'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CarUsageType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates the usage of the car as a taxi.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Taxon.php b/src/models/jsonld/Taxon.php index 885469147..6c230871c 100644 --- a/src/models/jsonld/Taxon.php +++ b/src/models/jsonld/Taxon.php @@ -24,129 +24,129 @@ */ class Taxon extends MetaJsonLd implements TaxonInterface, ThingInterface { - use TaxonTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Taxon'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Taxon'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A set of organisms asserted to represent a natural cohesive biological unit.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'childTaxon' => ['Text', 'Taxon', 'URL'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'hasDefinedTerm' => ['DefinedTerm'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'parentTaxon' => ['URL', 'Text', 'Taxon'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxonRank' => ['URL', 'PropertyValue', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'childTaxon' => 'Closest child taxa of the taxon in question.', - 'description' => 'A description of the item.', - '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.', - 'hasDefinedTerm' => 'A Defined Term contained in this term set.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'parentTaxon' => 'Closest parent taxon of the taxon in question.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxonRank' => 'The taxonomic rank of this taxon given preferably as a URI from a controlled vocabulary – typically the ranks from TDWG TaxonRank ontology or equivalent Wikidata URIs.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TaxonTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Taxon'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Taxon'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A set of organisms asserted to represent a natural cohesive biological unit.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'childTaxon' => ['Text', 'Taxon', 'URL'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'hasDefinedTerm' => ['DefinedTerm'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'parentTaxon' => ['URL', 'Text', 'Taxon'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxonRank' => ['URL', 'PropertyValue', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'childTaxon' => 'Closest child taxa of the taxon in question.', + 'description' => 'A description of the item.', + '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.', + 'hasDefinedTerm' => 'A Defined Term contained in this term set.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'parentTaxon' => 'Closest parent taxon of the taxon in question.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxonRank' => 'The taxonomic rank of this taxon given preferably as a URI from a controlled vocabulary – typically the ranks from TDWG TaxonRank ontology or equivalent Wikidata URIs.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TechArticle.php b/src/models/jsonld/TechArticle.php index cb29ce81a..26d79ecd3 100644 --- a/src/models/jsonld/TechArticle.php +++ b/src/models/jsonld/TechArticle.php @@ -24,367 +24,367 @@ */ class TechArticle extends MetaJsonLd implements TechArticleInterface, ArticleInterface, CreativeWorkInterface, ThingInterface { - use TechArticleTrait; - use ArticleTrait; - use CreativeWorkTrait; - use ThingTrait; + use TechArticleTrait; + use ArticleTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TechArticle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TechArticle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TechArticle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TechArticle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Article'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Article'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A technical article - Example: How-to (task) topics, step-by-step, procedural troubleshooting, specifications, etc.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A technical article - Example: How-to (task) topics, step-by-step, procedural troubleshooting, specifications, etc.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'articleBody' => ['Text'], - 'articleSection' => ['Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'backstory' => ['CreativeWork', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'dependencies' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pageEnd' => ['Integer', 'Text'], - 'pageStart' => ['Integer', 'Text'], - 'pagination' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'proficiencyLevel' => ['Text'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'wordCount' => ['Integer'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'articleBody' => ['Text'], + 'articleSection' => ['Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'backstory' => ['CreativeWork', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'dependencies' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pageEnd' => ['Integer', 'Text'], + 'pageStart' => ['Integer', 'Text'], + 'pagination' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'proficiencyLevel' => ['Text'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'wordCount' => ['Integer'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'articleBody' => 'The actual body of the article.', - 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'dependencies' => 'Prerequisites needed to fulfill steps in article.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', - 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', - 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'proficiencyLevel' => 'Proficiency needed for this content; expected values: \'Beginner\', \'Expert\'.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'wordCount' => 'The number of words in the text of the Article.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'articleBody' => 'The actual body of the article.', + 'articleSection' => 'Articles may belong to one or more \'sections\' in a magazine or newspaper, such as Sports, Lifestyle, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'backstory' => 'For an [[Article]], typically a [[NewsArticle]], the backstory property provides a textual summary giving a brief explanation of why and how an article was created. In a journalistic setting this could include information about reporting process, methods, interviews, data sources, etc.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'dependencies' => 'Prerequisites needed to fulfill steps in article.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pageEnd' => 'The page on which the work ends; for example "138" or "xvi".', + 'pageStart' => 'The page on which the work starts; for example "135" or "xiii".', + 'pagination' => 'Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'proficiencyLevel' => 'Proficiency needed for this content; expected values: \'Beginner\', \'Expert\'.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'wordCount' => 'The number of words in the text of the Article.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['author', 'datePublished', 'description', 'headline', 'image', 'name', 'publisher']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['dateModified', 'image', 'mainEntityOfPage', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['dateModified', 'image', 'mainEntityOfPage', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TelevisionChannel.php b/src/models/jsonld/TelevisionChannel.php index 2cb283997..c5d4a9fb6 100644 --- a/src/models/jsonld/TelevisionChannel.php +++ b/src/models/jsonld/TelevisionChannel.php @@ -24,135 +24,135 @@ */ class TelevisionChannel extends MetaJsonLd implements TelevisionChannelInterface, BroadcastChannelInterface, IntangibleInterface, ThingInterface { - use TelevisionChannelTrait; - use BroadcastChannelTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TelevisionChannel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TelevisionChannel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BroadcastChannel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A unique instance of a television BroadcastService on a CableOrSatelliteService lineup.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'broadcastChannelId' => ['Text'], - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], - 'broadcastServiceTier' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'genre' => ['Text', 'URL'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inBroadcastLineup' => ['CableOrSatelliteService'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'providesBroadcastService' => ['BroadcastService'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', - '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".', - 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', - 'description' => 'A description of the item.', - '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.', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'providesBroadcastService' => 'The BroadcastService offered on this channel.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TelevisionChannelTrait; + use BroadcastChannelTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TelevisionChannel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TelevisionChannel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BroadcastChannel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A unique instance of a television BroadcastService on a CableOrSatelliteService lineup.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'broadcastChannelId' => ['Text'], + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], + 'broadcastServiceTier' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'genre' => ['Text', 'URL'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inBroadcastLineup' => ['CableOrSatelliteService'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'providesBroadcastService' => ['BroadcastService'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'broadcastChannelId' => 'The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.', + '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".', + 'broadcastServiceTier' => 'The type of service required to have access to the channel (e.g. Standard or Premium).', + 'description' => 'A description of the item.', + '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.', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inBroadcastLineup' => 'The CableOrSatelliteService offering the channel.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'providesBroadcastService' => 'The BroadcastService offered on this channel.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TelevisionStation.php b/src/models/jsonld/TelevisionStation.php index 40df9bd84..143f6e29e 100644 --- a/src/models/jsonld/TelevisionStation.php +++ b/src/models/jsonld/TelevisionStation.php @@ -23,330 +23,330 @@ */ class TelevisionStation extends MetaJsonLd implements TelevisionStationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use TelevisionStationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use TelevisionStationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TelevisionStation'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TelevisionStation'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TelevisionStation'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TelevisionStation'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A television station.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A television station.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TennisComplex.php b/src/models/jsonld/TennisComplex.php index 5a0d063ea..02e411cc7 100644 --- a/src/models/jsonld/TennisComplex.php +++ b/src/models/jsonld/TennisComplex.php @@ -23,331 +23,331 @@ */ class TennisComplex extends MetaJsonLd implements TennisComplexInterface, SportsActivityLocationInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use TennisComplexTrait; - use SportsActivityLocationTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use TennisComplexTrait; + use SportsActivityLocationTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TennisComplex'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TennisComplex'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TennisComplex'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TennisComplex'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SportsActivityLocation'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SportsActivityLocation'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A tennis complex.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A tennis complex.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Terminated.php b/src/models/jsonld/Terminated.php index b93826fe1..f48349ffe 100644 --- a/src/models/jsonld/Terminated.php +++ b/src/models/jsonld/Terminated.php @@ -23,127 +23,127 @@ */ class Terminated extends MetaJsonLd implements TerminatedInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TerminatedTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Terminated'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Terminated'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Terminated.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TerminatedTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Terminated'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Terminated'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Terminated.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Text.php b/src/models/jsonld/Text.php index ef77eeef3..0de15df37 100644 --- a/src/models/jsonld/Text.php +++ b/src/models/jsonld/Text.php @@ -23,98 +23,98 @@ */ class Text extends MetaJsonLd implements TextInterface { - use TextTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Text'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Text'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data type: Text.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TextTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Text'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Text'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data type: Text.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TextDigitalDocument.php b/src/models/jsonld/TextDigitalDocument.php index 540457af6..1b7366dc1 100644 --- a/src/models/jsonld/TextDigitalDocument.php +++ b/src/models/jsonld/TextDigitalDocument.php @@ -23,349 +23,349 @@ */ class TextDigitalDocument extends MetaJsonLd implements TextDigitalDocumentInterface, DigitalDocumentInterface, CreativeWorkInterface, ThingInterface { - use TextDigitalDocumentTrait; - use DigitalDocumentTrait; - use CreativeWorkTrait; - use ThingTrait; + use TextDigitalDocumentTrait; + use DigitalDocumentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TextDigitalDocument'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TextDigitalDocument'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TextDigitalDocument'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TextDigitalDocument'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalDocument'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalDocument'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A file composed primarily of text.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A file composed primarily of text.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasDigitalDocumentPermission' => ['DigitalDocumentPermission'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasDigitalDocumentPermission' => 'A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TheaterEvent.php b/src/models/jsonld/TheaterEvent.php index b5dea91c2..cab7da21f 100644 --- a/src/models/jsonld/TheaterEvent.php +++ b/src/models/jsonld/TheaterEvent.php @@ -23,204 +23,204 @@ */ class TheaterEvent extends MetaJsonLd implements TheaterEventInterface, EventInterface, ThingInterface { - use TheaterEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TheaterEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TheaterEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Theater performance.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TheaterEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TheaterEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TheaterEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Theater performance.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TheaterGroup.php b/src/models/jsonld/TheaterGroup.php index b61120bd9..0ea141527 100644 --- a/src/models/jsonld/TheaterGroup.php +++ b/src/models/jsonld/TheaterGroup.php @@ -24,255 +24,255 @@ */ class TheaterGroup extends MetaJsonLd implements TheaterGroupInterface, PerformingGroupInterface, OrganizationInterface, ThingInterface { - use TheaterGroupTrait; - use PerformingGroupTrait; - use OrganizationTrait; - use ThingTrait; + use TheaterGroupTrait; + use PerformingGroupTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TheaterGroup'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TheaterGroup'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TheaterGroup'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TheaterGroup'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PerformingGroup'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PerformingGroup'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A theater group or company, for example, the Royal Shakespeare Company or Druid Theatre.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A theater group or company, for example, the Royal Shakespeare Company or Druid Theatre.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Therapeutic.php b/src/models/jsonld/Therapeutic.php index 4b325d89a..c52ce6807 100644 --- a/src/models/jsonld/Therapeutic.php +++ b/src/models/jsonld/Therapeutic.php @@ -23,127 +23,127 @@ */ class Therapeutic extends MetaJsonLd implements TherapeuticInterface, MedicalDevicePurposeInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TherapeuticTrait; - use MedicalDevicePurposeTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Therapeutic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Therapeutic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalDevicePurpose'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical device used for therapeutic purposes.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TherapeuticTrait; + use MedicalDevicePurposeTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Therapeutic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Therapeutic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalDevicePurpose'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical device used for therapeutic purposes.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TherapeuticProcedure.php b/src/models/jsonld/TherapeuticProcedure.php index 1fd37353d..257df2b68 100644 --- a/src/models/jsonld/TherapeuticProcedure.php +++ b/src/models/jsonld/TherapeuticProcedure.php @@ -24,157 +24,157 @@ */ class TherapeuticProcedure extends MetaJsonLd implements TherapeuticProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface { - use TherapeuticProcedureTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TherapeuticProcedure'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TherapeuticProcedure'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalProcedure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A medical procedure intended primarily for therapeutic purposes, aimed at improving a health condition.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'adverseOutcome' => ['MedicalEntity'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'doseSchedule' => ['DoseSchedule'], - 'drug' => ['Drug'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TherapeuticProcedureTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TherapeuticProcedure'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TherapeuticProcedure'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalProcedure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A medical procedure intended primarily for therapeutic purposes, aimed at improving a health condition.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'adverseOutcome' => ['MedicalEntity'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'doseSchedule' => ['DoseSchedule'], + 'drug' => ['Drug'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'adverseOutcome' => 'A possible complication and/or side effect of this therapy. If it is known that an adverse outcome is serious (resulting in death, disability, or permanent damage; requiring hospitalization; or otherwise life-threatening or requiring immediate medical attention), tag it as a seriousAdverseOutcome instead.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'doseSchedule' => 'A dosing schedule for the drug for a given population, either observed, recommended, or maximum dose based on the type used.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Thesis.php b/src/models/jsonld/Thesis.php index 3ccce897f..81339f7bc 100644 --- a/src/models/jsonld/Thesis.php +++ b/src/models/jsonld/Thesis.php @@ -24,348 +24,348 @@ */ class Thesis extends MetaJsonLd implements ThesisInterface, CreativeWorkInterface, ThingInterface { - use ThesisTrait; - use CreativeWorkTrait; - use ThingTrait; + use ThesisTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Thesis'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Thesis'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Thesis'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Thesis'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A thesis or dissertation document submitted in support of candidature for an academic degree or professional qualification.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A thesis or dissertation document submitted in support of candidature for an academic degree or professional qualification.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'inSupportOf' => ['Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'inSupportOf' => ['Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'inSupportOf' => 'Qualification, candidature, degree, application that Thesis supports.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'inSupportOf' => 'Qualification, candidature, degree, application that Thesis supports.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Thing.php b/src/models/jsonld/Thing.php index 29c2bc001..6e2be7b7a 100644 --- a/src/models/jsonld/Thing.php +++ b/src/models/jsonld/Thing.php @@ -23,120 +23,120 @@ */ class Thing extends MetaJsonLd implements ThingInterface { - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Thing'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Thing'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The most generic type of item.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Thing'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Thing'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The most generic type of item.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Throat.php b/src/models/jsonld/Throat.php index 7c0e7dcc7..7d3144715 100644 --- a/src/models/jsonld/Throat.php +++ b/src/models/jsonld/Throat.php @@ -23,157 +23,157 @@ */ class Throat extends MetaJsonLd implements ThroatInterface, PhysicalExamInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface { - use ThroatTrait; - use PhysicalExamTrait; - use MedicalProcedureTrait; - use MedicalEntityTrait; - use ThingTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Throat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Throat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PhysicalExam'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Throat assessment with clinical examination.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'followup' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'howPerformed' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'preparation' => ['Text', 'MedicalEntity'], - 'procedureType' => ['MedicalProcedureType'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'followup' => 'Typical or recommended followup care after the procedure is performed.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - 'howPerformed' => 'How the procedure is performed.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ThroatTrait; + use PhysicalExamTrait; + use MedicalProcedureTrait; + use MedicalEntityTrait; + use ThingTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Throat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Throat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PhysicalExam'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Throat assessment with clinical examination.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'followup' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'howPerformed' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'preparation' => ['Text', 'MedicalEntity'], + 'procedureType' => ['MedicalProcedureType'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'followup' => 'Typical or recommended followup care after the procedure is performed.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + 'howPerformed' => 'How the procedure is performed.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Thursday.php b/src/models/jsonld/Thursday.php index f47b4a0e9..c21aec6c1 100644 --- a/src/models/jsonld/Thursday.php +++ b/src/models/jsonld/Thursday.php @@ -23,126 +23,126 @@ */ class Thursday extends MetaJsonLd implements ThursdayInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ThursdayTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Thursday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Thursday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The day of the week between Wednesday and Friday.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ThursdayTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Thursday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Thursday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The day of the week between Wednesday and Friday.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Ticket.php b/src/models/jsonld/Ticket.php index c51f8e115..ad1bb50ae 100644 --- a/src/models/jsonld/Ticket.php +++ b/src/models/jsonld/Ticket.php @@ -23,138 +23,138 @@ */ class Ticket extends MetaJsonLd implements TicketInterface, IntangibleInterface, ThingInterface { - use TicketTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Ticket'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Ticket'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Used to describe a ticket to an event, a flight, a bus ride, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'dateIssued' => ['Date', 'DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'issuedBy' => ['Organization'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'ticketNumber' => ['Text'], - 'ticketToken' => ['URL', 'Text'], - 'ticketedSeat' => ['Seat'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'dateIssued' => 'The date the ticket was issued.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'issuedBy' => 'The organization issuing the ticket or permit.', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'ticketNumber' => 'The unique identifier for the ticket.', - 'ticketToken' => 'Reference to an asset (e.g., Barcode, QR code image or PDF) usable for entrance.', - 'ticketedSeat' => 'The seat associated with the ticket.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TicketTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Ticket'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Ticket'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Used to describe a ticket to an event, a flight, a bus ride, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'dateIssued' => ['Date', 'DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'issuedBy' => ['Organization'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'ticketNumber' => ['Text'], + 'ticketToken' => ['URL', 'Text'], + 'ticketedSeat' => ['Seat'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'dateIssued' => 'The date the ticket was issued.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'issuedBy' => 'The organization issuing the ticket or permit.', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'ticketNumber' => 'The unique identifier for the ticket.', + 'ticketToken' => 'Reference to an asset (e.g., Barcode, QR code image or PDF) usable for entrance.', + 'ticketedSeat' => 'The seat associated with the ticket.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TieAction.php b/src/models/jsonld/TieAction.php index fcf99d004..17e11c9d9 100644 --- a/src/models/jsonld/TieAction.php +++ b/src/models/jsonld/TieAction.php @@ -23,147 +23,147 @@ */ class TieAction extends MetaJsonLd implements TieActionInterface, AchieveActionInterface, ActionInterface, ThingInterface { - use TieActionTrait; - use AchieveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TieAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TieAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AchieveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of reaching a draw in a competitive activity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TieActionTrait; + use AchieveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TieAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TieAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AchieveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of reaching a draw in a competitive activity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Time.php b/src/models/jsonld/Time.php index 253ac7c98..0cfa4e2f2 100644 --- a/src/models/jsonld/Time.php +++ b/src/models/jsonld/Time.php @@ -25,98 +25,98 @@ */ class Time extends MetaJsonLd implements TimeInterface { - use TimeTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Time'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Time'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Thing'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A point in time recurring on multiple days in the form hh:mm:ss[Z|(+|-)hh:mm] (see [XML schema for details](http://www.w3.org/TR/xmlschema-2/#time)).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TimeTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Time'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Time'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Thing'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A point in time recurring on multiple days in the form hh:mm:ss[Z|(+|-)hh:mm] (see [XML schema for details](http://www.w3.org/TR/xmlschema-2/#time)).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TipAction.php b/src/models/jsonld/TipAction.php index b3daf6eed..7d32b59d2 100644 --- a/src/models/jsonld/TipAction.php +++ b/src/models/jsonld/TipAction.php @@ -24,155 +24,155 @@ */ class TipAction extends MetaJsonLd implements TipActionInterface, TradeActionInterface, ActionInterface, ThingInterface { - use TipActionTrait; - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TipAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TipAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'TradeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of giving money voluntarily to a beneficiary in recognition of services rendered.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TipActionTrait; + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TipAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TipAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'TradeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of giving money voluntarily to a beneficiary in recognition of services rendered.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'recipient' => ['Organization', 'ContactPoint', 'Person', 'Audience'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'recipient' => 'A sub property of participant. The participant who is at the receiving end of the action.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TireShop.php b/src/models/jsonld/TireShop.php index a396a6a3b..87b99bc38 100644 --- a/src/models/jsonld/TireShop.php +++ b/src/models/jsonld/TireShop.php @@ -23,331 +23,331 @@ */ class TireShop extends MetaJsonLd implements TireShopInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use TireShopTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use TireShopTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TireShop'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TireShop'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TireShop'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TireShop'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A tire shop.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A tire shop.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TobaccoNicotineConsideration.php b/src/models/jsonld/TobaccoNicotineConsideration.php index fc3a16937..b80bbe8d6 100644 --- a/src/models/jsonld/TobaccoNicotineConsideration.php +++ b/src/models/jsonld/TobaccoNicotineConsideration.php @@ -24,126 +24,126 @@ */ class TobaccoNicotineConsideration extends MetaJsonLd implements TobaccoNicotineConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TobaccoNicotineConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TobaccoNicotineConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TobaccoNicotineConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Item contains tobacco and/or nicotine, for example cigars, cigarettes, chewing tobacco, e-cigarettes, or hookahs.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TobaccoNicotineConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TobaccoNicotineConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TobaccoNicotineConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Item contains tobacco and/or nicotine, for example cigars, cigarettes, chewing tobacco, e-cigarettes, or hookahs.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TollFree.php b/src/models/jsonld/TollFree.php index 6bb51afe0..802a71c95 100644 --- a/src/models/jsonld/TollFree.php +++ b/src/models/jsonld/TollFree.php @@ -23,126 +23,126 @@ */ class TollFree extends MetaJsonLd implements TollFreeInterface, ContactPointOptionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TollFreeTrait; - use ContactPointOptionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TollFree'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TollFree'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ContactPointOption'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The associated telephone number is toll free.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TollFreeTrait; + use ContactPointOptionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TollFree'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TollFree'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ContactPointOption'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The associated telephone number is toll free.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TouristAttraction.php b/src/models/jsonld/TouristAttraction.php index d302e0b58..92f60ac88 100644 --- a/src/models/jsonld/TouristAttraction.php +++ b/src/models/jsonld/TouristAttraction.php @@ -28,216 +28,216 @@ */ class TouristAttraction extends MetaJsonLd implements TouristAttractionInterface, PlaceInterface, ThingInterface { - use TouristAttractionTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TouristAttraction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TouristAttraction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A tourist attraction. In principle any Thing can be a [[TouristAttraction]], from a [[Mountain]] and [[LandmarksOrHistoricalBuildings]] to a [[LocalBusiness]]. This Type can be used on its own to describe a general [[TouristAttraction]], or be used as an [[additionalType]] to add tourist attraction properties to any other type. (See examples below)'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'availableLanguage' => ['Text', 'Language'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'touristType' => ['Text', 'Audience'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'touristType' => 'Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TouristAttractionTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TouristAttraction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TouristAttraction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A tourist attraction. In principle any Thing can be a [[TouristAttraction]], from a [[Mountain]] and [[LandmarksOrHistoricalBuildings]] to a [[LocalBusiness]]. This Type can be used on its own to describe a general [[TouristAttraction]], or be used as an [[additionalType]] to add tourist attraction properties to any other type. (See examples below)'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'availableLanguage' => ['Text', 'Language'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'touristType' => ['Text', 'Audience'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + 'availableLanguage' => 'A language someone may use with or at the item, service or place. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]].', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'touristType' => 'Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TouristDestination.php b/src/models/jsonld/TouristDestination.php index 43f80ac70..b3d629a22 100644 --- a/src/models/jsonld/TouristDestination.php +++ b/src/models/jsonld/TouristDestination.php @@ -33,216 +33,216 @@ */ class TouristDestination extends MetaJsonLd implements TouristDestinationInterface, PlaceInterface, ThingInterface { - use TouristDestinationTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TouristDestination'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TouristDestination'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Place'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A tourist destination. In principle any [[Place]] can be a [[TouristDestination]] from a [[City]], Region or [[Country]] to an [[AmusementPark]] or [[Hotel]]. This Type can be used on its own to describe a general [[TouristDestination]], or be used as an [[additionalType]] to add tourist relevant properties to any other [[Place]]. A [[TouristDestination]] is defined as a [[Place]] that contains, or is colocated with, one or more [[TouristAttraction]]s, often linked by a similar theme or interest to a particular [[touristType]]. The [UNWTO](http://www2.unwto.org/) defines Destination (main destination of a tourism trip) as the place visited that is central to the decision to take the trip.\n (See examples below.)"; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'includesAttraction' => ['TouristAttraction'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'touristType' => ['Text', 'Audience'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'includesAttraction' => 'Attraction located at destination.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'touristType' => 'Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TouristDestinationTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TouristDestination'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TouristDestination'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Place'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A tourist destination. In principle any [[Place]] can be a [[TouristDestination]] from a [[City]], Region or [[Country]] to an [[AmusementPark]] or [[Hotel]]. This Type can be used on its own to describe a general [[TouristDestination]], or be used as an [[additionalType]] to add tourist relevant properties to any other [[Place]]. A [[TouristDestination]] is defined as a [[Place]] that contains, or is colocated with, one or more [[TouristAttraction]]s, often linked by a similar theme or interest to a particular [[touristType]]. The [UNWTO](http://www2.unwto.org/) defines Destination (main destination of a tourism trip) as the place visited that is central to the decision to take the trip.\n (See examples below.)"; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'includesAttraction' => ['TouristAttraction'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'touristType' => ['Text', 'Audience'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'includesAttraction' => 'Attraction located at destination.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'touristType' => 'Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TouristInformationCenter.php b/src/models/jsonld/TouristInformationCenter.php index 2dc760d98..3d39ca65b 100644 --- a/src/models/jsonld/TouristInformationCenter.php +++ b/src/models/jsonld/TouristInformationCenter.php @@ -23,330 +23,330 @@ */ class TouristInformationCenter extends MetaJsonLd implements TouristInformationCenterInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use TouristInformationCenterTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use TouristInformationCenterTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TouristInformationCenter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TouristInformationCenter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TouristInformationCenter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TouristInformationCenter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A tourist information center.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A tourist information center.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TouristTrip.php b/src/models/jsonld/TouristTrip.php index 8a5acade1..0eb4daa97 100644 --- a/src/models/jsonld/TouristTrip.php +++ b/src/models/jsonld/TouristTrip.php @@ -27,139 +27,139 @@ */ class TouristTrip extends MetaJsonLd implements TouristTripInterface, TripInterface, IntangibleInterface, ThingInterface { - use TouristTripTrait; - use TripTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TouristTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TouristTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A tourist trip. A created itinerary of visits to one or more places of interest ([[TouristAttraction]]/[[TouristDestination]]) often linked by a similar theme, geographic area, or interest to a particular [[touristType]]. The [UNWTO](http://www2.unwto.org/) defines tourism trip as the Trip taken by visitors.\n (See examples below.)"; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'arrivalTime' => ['DateTime', 'Time'], - 'departureTime' => ['Time', 'DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itinerary' => ['ItemList', 'Place'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfTrip' => ['Trip'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'sameAs' => ['URL'], - 'subTrip' => ['Trip'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'touristType' => ['Text', 'Audience'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'arrivalTime' => 'The expected arrival time.', - 'departureTime' => 'The expected departure time.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'touristType' => 'Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TouristTripTrait; + use TripTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TouristTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TouristTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A tourist trip. A created itinerary of visits to one or more places of interest ([[TouristAttraction]]/[[TouristDestination]]) often linked by a similar theme, geographic area, or interest to a particular [[touristType]]. The [UNWTO](http://www2.unwto.org/) defines tourism trip as the Trip taken by visitors.\n (See examples below.)"; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'arrivalTime' => ['DateTime', 'Time'], + 'departureTime' => ['Time', 'DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itinerary' => ['ItemList', 'Place'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfTrip' => ['Trip'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'sameAs' => ['URL'], + 'subTrip' => ['Trip'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'touristType' => ['Text', 'Audience'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'arrivalTime' => 'The expected arrival time.', + 'departureTime' => 'The expected departure time.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'touristType' => 'Attraction suitable for type(s) of tourist. E.g. children, visitors from a particular country, etc. ', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Toxicologic.php b/src/models/jsonld/Toxicologic.php index 85ea1a9b8..db1925711 100644 --- a/src/models/jsonld/Toxicologic.php +++ b/src/models/jsonld/Toxicologic.php @@ -24,128 +24,128 @@ */ class Toxicologic extends MetaJsonLd implements ToxicologicInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use ToxicologicTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Toxicologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Toxicologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with poisons, their nature, effects and detection and involved in the treatment of poisoning.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ToxicologicTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Toxicologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Toxicologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with poisons, their nature, effects and detection and involved in the treatment of poisoning.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ToyStore.php b/src/models/jsonld/ToyStore.php index 4a2e2705a..9520dfc30 100644 --- a/src/models/jsonld/ToyStore.php +++ b/src/models/jsonld/ToyStore.php @@ -23,331 +23,331 @@ */ class ToyStore extends MetaJsonLd implements ToyStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use ToyStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use ToyStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ToyStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ToyStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ToyStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ToyStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A toy store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A toy store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TrackAction.php b/src/models/jsonld/TrackAction.php index 89e3383fe..6693e0957 100644 --- a/src/models/jsonld/TrackAction.php +++ b/src/models/jsonld/TrackAction.php @@ -27,149 +27,149 @@ */ class TrackAction extends MetaJsonLd implements TrackActionInterface, FindActionInterface, ActionInterface, ThingInterface { - use TrackActionTrait; - use FindActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TrackAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TrackAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FindAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An agent tracks an object for updates.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, TrackAction refers to the interest on the location of innanimates objects.\n* [[SubscribeAction]]: Unlike SubscribeAction, TrackAction refers to the interest on the location of innanimate objects.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'deliveryMethod' => ['DeliveryMethod'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TrackActionTrait; + use FindActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TrackAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TrackAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FindAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An agent tracks an object for updates.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, TrackAction refers to the interest on the location of innanimates objects.\n* [[SubscribeAction]]: Unlike SubscribeAction, TrackAction refers to the interest on the location of innanimate objects.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'deliveryMethod' => ['DeliveryMethod'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'deliveryMethod' => 'A sub property of instrument. The method of delivery.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TradeAction.php b/src/models/jsonld/TradeAction.php index aca4a5484..aa9a3538e 100644 --- a/src/models/jsonld/TradeAction.php +++ b/src/models/jsonld/TradeAction.php @@ -25,152 +25,152 @@ */ class TradeAction extends MetaJsonLd implements TradeActionInterface, ActionInterface, ThingInterface { - use TradeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TradeAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TradeAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of participating in an exchange of goods and services for monetary compensation. An agent trades an object, product or service with a participant in exchange for a one time or periodic payment.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceCurrency' => ['Text'], - 'priceSpecification' => ['PriceSpecification'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TradeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TradeAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TradeAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of participating in an exchange of goods and services for monetary compensation. An agent trades an object, product or service with a participant in exchange for a one time or periodic payment.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceCurrency' => ['Text'], + 'priceSpecification' => ['PriceSpecification'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceSpecification' => 'One or more detailed price specifications, indicating the unit price and delivery or payment charges.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TraditionalChinese.php b/src/models/jsonld/TraditionalChinese.php index 9eb579d41..0b4c1d66e 100644 --- a/src/models/jsonld/TraditionalChinese.php +++ b/src/models/jsonld/TraditionalChinese.php @@ -26,127 +26,127 @@ */ class TraditionalChinese extends MetaJsonLd implements TraditionalChineseInterface, MedicineSystemInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TraditionalChineseTrait; - use MedicineSystemTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TraditionalChinese'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TraditionalChinese'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A system of medicine based on common theoretical concepts that originated in China and evolved over thousands of years, that uses herbs, acupuncture, exercise, massage, dietary therapy, and other methods to treat a wide range of conditions.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TraditionalChineseTrait; + use MedicineSystemTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TraditionalChinese'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TraditionalChinese'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A system of medicine based on common theoretical concepts that originated in China and evolved over thousands of years, that uses herbs, acupuncture, exercise, massage, dietary therapy, and other methods to treat a wide range of conditions.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TrainReservation.php b/src/models/jsonld/TrainReservation.php index 6a2a0beec..833095f64 100644 --- a/src/models/jsonld/TrainReservation.php +++ b/src/models/jsonld/TrainReservation.php @@ -26,149 +26,149 @@ */ class TrainReservation extends MetaJsonLd implements TrainReservationInterface, ReservationInterface, IntangibleInterface, ThingInterface { - use TrainReservationTrait; - use ReservationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TrainReservation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TrainReservation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Reservation'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A reservation for train travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'bookingAgent' => ['Organization', 'Person'], - 'bookingTime' => ['DateTime'], - 'broker' => ['Person', 'Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'modifiedTime' => ['DateTime'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'priceCurrency' => ['Text'], - 'programMembershipUsed' => ['ProgramMembership'], - 'provider' => ['Organization', 'Person'], - 'reservationFor' => ['Thing'], - 'reservationId' => ['Text'], - 'reservationStatus' => ['ReservationStatusType'], - 'reservedTicket' => ['Ticket'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], - 'underName' => ['Organization', 'Person'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', - 'bookingTime' => 'The date and time the reservation was booked.', - '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.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'modifiedTime' => 'The date and time the reservation was modified.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', - '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.', - 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', - 'reservationId' => 'A unique identifier for the reservation.', - 'reservationStatus' => 'The current status of the reservation.', - 'reservedTicket' => 'A ticket associated with the reservation.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', - 'underName' => 'The person or organization the reservation or ticket is for.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TrainReservationTrait; + use ReservationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TrainReservation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TrainReservation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Reservation'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A reservation for train travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'bookingAgent' => ['Organization', 'Person'], + 'bookingTime' => ['DateTime'], + 'broker' => ['Person', 'Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'modifiedTime' => ['DateTime'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'priceCurrency' => ['Text'], + 'programMembershipUsed' => ['ProgramMembership'], + 'provider' => ['Organization', 'Person'], + 'reservationFor' => ['Thing'], + 'reservationId' => ['Text'], + 'reservationStatus' => ['ReservationStatusType'], + 'reservedTicket' => ['Ticket'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'totalPrice' => ['Number', 'PriceSpecification', 'Text'], + 'underName' => ['Organization', 'Person'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'bookingAgent' => '\'bookingAgent\' is an out-dated term indicating a \'broker\' that serves as a booking agent.', + 'bookingTime' => 'The date and time the reservation was booked.', + '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.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'modifiedTime' => 'The date and time the reservation was modified.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'programMembershipUsed' => 'Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.', + '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.', + 'reservationFor' => 'The thing -- flight, event, restaurant, etc. being reserved.', + 'reservationId' => 'A unique identifier for the reservation.', + 'reservationStatus' => 'The current status of the reservation.', + 'reservedTicket' => 'A ticket associated with the reservation.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'totalPrice' => 'The total price for the reservation or ticket, including applicable taxes, shipping, etc. Usage guidelines: * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator.', + 'underName' => 'The person or organization the reservation or ticket is for.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TrainStation.php b/src/models/jsonld/TrainStation.php index 4695b71af..650c44de1 100644 --- a/src/models/jsonld/TrainStation.php +++ b/src/models/jsonld/TrainStation.php @@ -23,215 +23,215 @@ */ class TrainStation extends MetaJsonLd implements TrainStationInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use TrainStationTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TrainStation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TrainStation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A train station.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TrainStationTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TrainStation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TrainStation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A train station.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TrainTrip.php b/src/models/jsonld/TrainTrip.php index 56adfc597..998d9e93f 100644 --- a/src/models/jsonld/TrainTrip.php +++ b/src/models/jsonld/TrainTrip.php @@ -23,149 +23,149 @@ */ class TrainTrip extends MetaJsonLd implements TrainTripInterface, TripInterface, IntangibleInterface, ThingInterface { - use TrainTripTrait; - use TripTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TrainTrip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TrainTrip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Trip'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trip on a commercial train line.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'arrivalPlatform' => ['Text'], - 'arrivalStation' => ['TrainStation'], - 'arrivalTime' => ['DateTime', 'Time'], - 'departurePlatform' => ['Text'], - 'departureStation' => ['TrainStation'], - 'departureTime' => ['Time', 'DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itinerary' => ['ItemList', 'Place'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfTrip' => ['Trip'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'sameAs' => ['URL'], - 'subTrip' => ['Trip'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'trainName' => ['Text'], - 'trainNumber' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'arrivalPlatform' => 'The platform where the train arrives.', - 'arrivalStation' => 'The station where the train trip ends.', - 'arrivalTime' => 'The expected arrival time.', - 'departurePlatform' => 'The platform from which the train departs.', - 'departureStation' => 'The station from which the train departs.', - 'departureTime' => 'The expected departure time.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'trainName' => 'The name of the train (e.g. The Orient Express).', - 'trainNumber' => 'The unique identifier for the train.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TrainTripTrait; + use TripTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TrainTrip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TrainTrip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Trip'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trip on a commercial train line.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'arrivalPlatform' => ['Text'], + 'arrivalStation' => ['TrainStation'], + 'arrivalTime' => ['DateTime', 'Time'], + 'departurePlatform' => ['Text'], + 'departureStation' => ['TrainStation'], + 'departureTime' => ['Time', 'DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itinerary' => ['ItemList', 'Place'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfTrip' => ['Trip'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'sameAs' => ['URL'], + 'subTrip' => ['Trip'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'trainName' => ['Text'], + 'trainNumber' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'arrivalPlatform' => 'The platform where the train arrives.', + 'arrivalStation' => 'The station where the train trip ends.', + 'arrivalTime' => 'The expected arrival time.', + 'departurePlatform' => 'The platform from which the train departs.', + 'departureStation' => 'The station from which the train departs.', + 'departureTime' => 'The expected departure time.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'trainName' => 'The name of the train (e.g. The Orient Express).', + 'trainNumber' => 'The unique identifier for the train.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TransferAction.php b/src/models/jsonld/TransferAction.php index 98fab91b1..2ed546278 100644 --- a/src/models/jsonld/TransferAction.php +++ b/src/models/jsonld/TransferAction.php @@ -24,150 +24,150 @@ */ class TransferAction extends MetaJsonLd implements TransferActionInterface, ActionInterface, ThingInterface { - use TransferActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TransferAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TransferAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TransferActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TransferAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TransferAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TransformedContent.php b/src/models/jsonld/TransformedContent.php index c36385d36..0b3a003a0 100644 --- a/src/models/jsonld/TransformedContent.php +++ b/src/models/jsonld/TransformedContent.php @@ -36,126 +36,126 @@ */ class TransformedContent extends MetaJsonLd implements TransformedContentInterface, MediaManipulationRatingEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TransformedContentTrait; - use MediaManipulationRatingEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TransformedContent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TransformedContent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "Content coded 'transformed content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'transformed content': or all of the video has been manipulated to transform the footage itself. This category includes using tools like the Adobe Suite to change the speed of the video, add or remove visual elements or dub audio. Deepfakes are also a subset of transformation.\n\nFor an [[ImageObject]] to be 'transformed content': Adding or deleting visual elements to give the image a different meaning with the intention to mislead.\n\nFor an [[ImageObject]] with embedded text to be 'transformed content': Adding or deleting visual elements to give the image a different meaning with the intention to mislead.\n\nFor an [[AudioObject]] to be 'transformed content': Part or all of the audio has been manipulated to alter the words or sounds, or the audio has been synthetically generated, such as to create a sound-alike voice."; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TransformedContentTrait; + use MediaManipulationRatingEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TransformedContent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TransformedContent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaManipulationRatingEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "Content coded 'transformed content' in a [[MediaReview]], considered in the context of how it was published or shared.\n\nFor a [[VideoObject]] to be 'transformed content': or all of the video has been manipulated to transform the footage itself. This category includes using tools like the Adobe Suite to change the speed of the video, add or remove visual elements or dub audio. Deepfakes are also a subset of transformation.\n\nFor an [[ImageObject]] to be 'transformed content': Adding or deleting visual elements to give the image a different meaning with the intention to mislead.\n\nFor an [[ImageObject]] with embedded text to be 'transformed content': Adding or deleting visual elements to give the image a different meaning with the intention to mislead.\n\nFor an [[AudioObject]] to be 'transformed content': Part or all of the audio has been manipulated to alter the words or sounds, or the audio has been synthetically generated, such as to create a sound-alike voice."; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TransitMap.php b/src/models/jsonld/TransitMap.php index 95d8939ae..6f9e25959 100644 --- a/src/models/jsonld/TransitMap.php +++ b/src/models/jsonld/TransitMap.php @@ -23,126 +23,126 @@ */ class TransitMap extends MetaJsonLd implements TransitMapInterface, MapCategoryTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TransitMapTrait; - use MapCategoryTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TransitMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TransitMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A transit map.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TransitMapTrait; + use MapCategoryTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TransitMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TransitMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A transit map.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TravelAction.php b/src/models/jsonld/TravelAction.php index 2c267e083..f4bbb9f5c 100644 --- a/src/models/jsonld/TravelAction.php +++ b/src/models/jsonld/TravelAction.php @@ -24,153 +24,153 @@ */ class TravelAction extends MetaJsonLd implements TravelActionInterface, MoveActionInterface, ActionInterface, ThingInterface { - use TravelActionTrait; - use MoveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TravelAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TravelAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MoveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of traveling from a fromLocation to a destination by a specified mode of transport, optionally with participants.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'distance' => ['Distance'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'fromLocation' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'toLocation' => ['Place'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'distance' => 'The distance travelled, e.g. exercising or travelling.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TravelActionTrait; + use MoveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TravelAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TravelAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MoveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of traveling from a fromLocation to a destination by a specified mode of transport, optionally with participants.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'distance' => ['Distance'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'fromLocation' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'toLocation' => ['Place'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'distance' => 'The distance travelled, e.g. exercising or travelling.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'fromLocation' => 'A sub property of location. The original location of the object or the agent before the action.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'toLocation' => 'A sub property of location. The final location of the object or the agent after the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TravelAgency.php b/src/models/jsonld/TravelAgency.php index 3c6359e37..58d8d683c 100644 --- a/src/models/jsonld/TravelAgency.php +++ b/src/models/jsonld/TravelAgency.php @@ -23,330 +23,330 @@ */ class TravelAgency extends MetaJsonLd implements TravelAgencyInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use TravelAgencyTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use TravelAgencyTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TravelAgency'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TravelAgency'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TravelAgency'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TravelAgency'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LocalBusiness'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LocalBusiness'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A travel agency.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A travel agency.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/TreatmentIndication.php b/src/models/jsonld/TreatmentIndication.php index 8c7ccd769..c279c2ed2 100644 --- a/src/models/jsonld/TreatmentIndication.php +++ b/src/models/jsonld/TreatmentIndication.php @@ -23,139 +23,139 @@ */ class TreatmentIndication extends MetaJsonLd implements TreatmentIndicationInterface, MedicalIndicationInterface, MedicalEntityInterface, ThingInterface { - use TreatmentIndicationTrait; - use MedicalIndicationTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TreatmentIndication'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TreatmentIndication'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalIndication'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An indication for treating an underlying condition, symptom, etc.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TreatmentIndicationTrait; + use MedicalIndicationTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TreatmentIndication'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TreatmentIndication'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalIndication'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An indication for treating an underlying condition, symptom, etc.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TreatmentsHealthAspect.php b/src/models/jsonld/TreatmentsHealthAspect.php index 0b9f52460..e3f1e3abe 100644 --- a/src/models/jsonld/TreatmentsHealthAspect.php +++ b/src/models/jsonld/TreatmentsHealthAspect.php @@ -23,126 +23,126 @@ */ class TreatmentsHealthAspect extends MetaJsonLd implements TreatmentsHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TreatmentsHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TreatmentsHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TreatmentsHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Treatments or related therapies for a Topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TreatmentsHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TreatmentsHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TreatmentsHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Treatments or related therapies for a Topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Trip.php b/src/models/jsonld/Trip.php index 8188f4359..161c200cc 100644 --- a/src/models/jsonld/Trip.php +++ b/src/models/jsonld/Trip.php @@ -23,136 +23,136 @@ */ class Trip extends MetaJsonLd implements TripInterface, IntangibleInterface, ThingInterface { - use TripTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Trip'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Trip'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trip or journey. An itinerary of visits to one or more places.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'arrivalTime' => ['DateTime', 'Time'], - 'departureTime' => ['Time', 'DateTime'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'itinerary' => ['ItemList', 'Place'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfTrip' => ['Trip'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'sameAs' => ['URL'], - 'subTrip' => ['Trip'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'arrivalTime' => 'The expected arrival time.', - 'departureTime' => 'The expected departure time.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - '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.', - 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TripTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Trip'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Trip'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trip or journey. An itinerary of visits to one or more places.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'arrivalTime' => ['DateTime', 'Time'], + 'departureTime' => ['Time', 'DateTime'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'itinerary' => ['ItemList', 'Place'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfTrip' => ['Trip'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'sameAs' => ['URL'], + 'subTrip' => ['Trip'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'arrivalTime' => 'The expected arrival time.', + 'departureTime' => 'The expected departure time.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'itinerary' => 'Destination(s) ( [[Place]] ) that make up a trip. For a trip where destination order is important use [[ItemList]] to specify that order (see examples).', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'partOfTrip' => 'Identifies that this [[Trip]] is a subTrip of another Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + '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.', + 'subTrip' => 'Identifies a [[Trip]] that is a subTrip of this Trip. For example Day 1, Day 2, etc. of a multi-day trip.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TripleBlindedTrial.php b/src/models/jsonld/TripleBlindedTrial.php index 50511a507..0b418200f 100644 --- a/src/models/jsonld/TripleBlindedTrial.php +++ b/src/models/jsonld/TripleBlindedTrial.php @@ -25,127 +25,127 @@ */ class TripleBlindedTrial extends MetaJsonLd implements TripleBlindedTrialInterface, MedicalTrialDesignInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TripleBlindedTrialTrait; - use MedicalTrialDesignTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TripleBlindedTrial'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TripleBlindedTrial'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalTrialDesign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A trial design in which neither the researcher, the person administering the therapy nor the patient knows the details of the treatment the patient was randomly assigned to.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TripleBlindedTrialTrait; + use MedicalTrialDesignTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TripleBlindedTrial'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TripleBlindedTrial'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalTrialDesign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A trial design in which neither the researcher, the person administering the therapy nor the patient knows the details of the treatment the patient was randomly assigned to.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Tuesday.php b/src/models/jsonld/Tuesday.php index db6fc2714..ea7ac2291 100644 --- a/src/models/jsonld/Tuesday.php +++ b/src/models/jsonld/Tuesday.php @@ -23,126 +23,126 @@ */ class Tuesday extends MetaJsonLd implements TuesdayInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TuesdayTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Tuesday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Tuesday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The day of the week between Monday and Wednesday.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TuesdayTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Tuesday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Tuesday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The day of the week between Monday and Wednesday.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TypeAndQuantityNode.php b/src/models/jsonld/TypeAndQuantityNode.php index 6026207d3..32e4ed4f1 100644 --- a/src/models/jsonld/TypeAndQuantityNode.php +++ b/src/models/jsonld/TypeAndQuantityNode.php @@ -24,133 +24,133 @@ */ class TypeAndQuantityNode extends MetaJsonLd implements TypeAndQuantityNodeInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use TypeAndQuantityNodeTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TypeAndQuantityNode'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TypeAndQuantityNode'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A structured value indicating the quantity, unit of measurement, and business function of goods included in a bundle offer.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'amountOfThisGood' => ['Number'], - 'businessFunction' => ['BusinessFunction'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typeOfGood' => ['Product', 'Service'], - 'unitCode' => ['Text', 'URL'], - 'unitText' => ['Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'amountOfThisGood' => 'The quantity of the goods included in the offer.', - 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typeOfGood' => 'The product that this structured value is referring to.', - 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', - 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TypeAndQuantityNodeTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TypeAndQuantityNode'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TypeAndQuantityNode'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A structured value indicating the quantity, unit of measurement, and business function of goods included in a bundle offer.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'amountOfThisGood' => ['Number'], + 'businessFunction' => ['BusinessFunction'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typeOfGood' => ['Product', 'Service'], + 'unitCode' => ['Text', 'URL'], + 'unitText' => ['Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'amountOfThisGood' => 'The quantity of the goods included in the offer.', + 'businessFunction' => 'The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typeOfGood' => 'The product that this structured value is referring to.', + 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', + 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/TypesHealthAspect.php b/src/models/jsonld/TypesHealthAspect.php index b19faafac..1db00572c 100644 --- a/src/models/jsonld/TypesHealthAspect.php +++ b/src/models/jsonld/TypesHealthAspect.php @@ -23,126 +23,126 @@ */ class TypesHealthAspect extends MetaJsonLd implements TypesHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use TypesHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'TypesHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/TypesHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Categorization and other types related to a topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use TypesHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'TypesHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/TypesHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Categorization and other types related to a topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UKNonprofitType.php b/src/models/jsonld/UKNonprofitType.php index 9978398e0..4a9019f1e 100644 --- a/src/models/jsonld/UKNonprofitType.php +++ b/src/models/jsonld/UKNonprofitType.php @@ -24,126 +24,126 @@ */ class UKNonprofitType extends MetaJsonLd implements UKNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UKNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UKNonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UKNonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UKNonprofitType: Non-profit organization type originating from the United Kingdom.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UKNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UKNonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UKNonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UKNonprofitType: Non-profit organization type originating from the United Kingdom.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UKTrust.php b/src/models/jsonld/UKTrust.php index b69de682e..de9e40fc4 100644 --- a/src/models/jsonld/UKTrust.php +++ b/src/models/jsonld/UKTrust.php @@ -23,127 +23,127 @@ */ class UKTrust extends MetaJsonLd implements UKTrustInterface, UKNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UKTrustTrait; - use UKNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UKTrust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UKTrust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UKTrust: Non-profit type referring to a UK trust.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UKTrustTrait; + use UKNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UKTrust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UKTrust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UKTrust: Non-profit type referring to a UK trust.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/URL.php b/src/models/jsonld/URL.php index 91c1ae21b..0e3491783 100644 --- a/src/models/jsonld/URL.php +++ b/src/models/jsonld/URL.php @@ -23,99 +23,99 @@ */ class URL extends MetaJsonLd implements URLInterface, TextInterface { - use URLTrait; - use TextTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'URL'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/URL'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Data type: URL.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use URLTrait; + use TextTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'URL'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/URL'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Data type: URL.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/USNonprofitType.php b/src/models/jsonld/USNonprofitType.php index 98ae7761d..1dadbeb42 100644 --- a/src/models/jsonld/USNonprofitType.php +++ b/src/models/jsonld/USNonprofitType.php @@ -24,126 +24,126 @@ */ class USNonprofitType extends MetaJsonLd implements USNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use USNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'USNonprofitType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/USNonprofitType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'NonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'USNonprofitType: Non-profit organization type originating from the United States.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use USNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'USNonprofitType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/USNonprofitType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'NonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'USNonprofitType: Non-profit organization type originating from the United States.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Ultrasound.php b/src/models/jsonld/Ultrasound.php index 59a9fc9e8..486ba0836 100644 --- a/src/models/jsonld/Ultrasound.php +++ b/src/models/jsonld/Ultrasound.php @@ -23,127 +23,127 @@ */ class Ultrasound extends MetaJsonLd implements UltrasoundInterface, MedicalImagingTechniqueInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UltrasoundTrait; - use MedicalImagingTechniqueTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Ultrasound'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Ultrasound'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Ultrasound imaging.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UltrasoundTrait; + use MedicalImagingTechniqueTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Ultrasound'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Ultrasound'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Ultrasound imaging.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UnRegisterAction.php b/src/models/jsonld/UnRegisterAction.php index 9b76658ec..11cd36927 100644 --- a/src/models/jsonld/UnRegisterAction.php +++ b/src/models/jsonld/UnRegisterAction.php @@ -27,147 +27,147 @@ */ class UnRegisterAction extends MetaJsonLd implements UnRegisterActionInterface, InteractActionInterface, ActionInterface, ThingInterface { - use UnRegisterActionTrait; - use InteractActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UnRegisterAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UnRegisterAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InteractAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of un-registering from a service.\n\nRelated actions:\n\n* [[RegisterAction]]: antonym of UnRegisterAction.\n* [[LeaveAction]]: Unlike LeaveAction, UnRegisterAction implies that you are unregistering from a service you were previously registered, rather than leaving a team/group of people.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UnRegisterActionTrait; + use InteractActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UnRegisterAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UnRegisterAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InteractAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of un-registering from a service.\n\nRelated actions:\n\n* [[RegisterAction]]: antonym of UnRegisterAction.\n* [[LeaveAction]]: Unlike LeaveAction, UnRegisterAction implies that you are unregistering from a service you were previously registered, rather than leaving a team/group of people.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UnclassifiedAdultConsideration.php b/src/models/jsonld/UnclassifiedAdultConsideration.php index fa88949df..2746da028 100644 --- a/src/models/jsonld/UnclassifiedAdultConsideration.php +++ b/src/models/jsonld/UnclassifiedAdultConsideration.php @@ -25,126 +25,126 @@ */ class UnclassifiedAdultConsideration extends MetaJsonLd implements UnclassifiedAdultConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UnclassifiedAdultConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UnclassifiedAdultConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UnclassifiedAdultConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The item is suitable only for adults, without indicating why. Due to widespread use of "adult" as a euphemism for "sexual", many such items are likely suited also for the SexualContentConsideration code.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UnclassifiedAdultConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UnclassifiedAdultConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UnclassifiedAdultConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The item is suitable only for adults, without indicating why. Due to widespread use of "adult" as a euphemism for "sexual", many such items are likely suited also for the SexualContentConsideration code.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UnemploymentSupport.php b/src/models/jsonld/UnemploymentSupport.php index a22ac8e42..66f608004 100644 --- a/src/models/jsonld/UnemploymentSupport.php +++ b/src/models/jsonld/UnemploymentSupport.php @@ -23,126 +23,126 @@ */ class UnemploymentSupport extends MetaJsonLd implements UnemploymentSupportInterface, GovernmentBenefitsTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UnemploymentSupportTrait; - use GovernmentBenefitsTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UnemploymentSupport'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UnemploymentSupport'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'GovernmentBenefitsType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UnemploymentSupport: this is a benefit for unemployment support.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UnemploymentSupportTrait; + use GovernmentBenefitsTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UnemploymentSupport'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UnemploymentSupport'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'GovernmentBenefitsType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UnemploymentSupport: this is a benefit for unemployment support.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UnincorporatedAssociationCharity.php b/src/models/jsonld/UnincorporatedAssociationCharity.php index 3d139c457..66598ff3c 100644 --- a/src/models/jsonld/UnincorporatedAssociationCharity.php +++ b/src/models/jsonld/UnincorporatedAssociationCharity.php @@ -24,127 +24,127 @@ */ class UnincorporatedAssociationCharity extends MetaJsonLd implements UnincorporatedAssociationCharityInterface, UKNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UnincorporatedAssociationCharityTrait; - use UKNonprofitTypeTrait; - use NonprofitTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UnincorporatedAssociationCharity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UnincorporatedAssociationCharity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UKNonprofitType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UnincorporatedAssociationCharity: Non-profit type referring to a charitable company that is not incorporated (UK).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UnincorporatedAssociationCharityTrait; + use UKNonprofitTypeTrait; + use NonprofitTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UnincorporatedAssociationCharity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UnincorporatedAssociationCharity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UKNonprofitType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UnincorporatedAssociationCharity: Non-profit type referring to a charitable company that is not incorporated (UK).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UnitPriceSpecification.php b/src/models/jsonld/UnitPriceSpecification.php index 8594a59b3..fc34612f1 100644 --- a/src/models/jsonld/UnitPriceSpecification.php +++ b/src/models/jsonld/UnitPriceSpecification.php @@ -23,158 +23,158 @@ */ class UnitPriceSpecification extends MetaJsonLd implements UnitPriceSpecificationInterface, PriceSpecificationInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use UnitPriceSpecificationTrait; - use PriceSpecificationTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UnitPriceSpecification'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UnitPriceSpecification'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'PriceSpecification'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The price asked for a given offer by the respective organization or person.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'billingDuration' => ['Number', 'QuantitativeValue', 'Duration'], - 'billingIncrement' => ['Number'], - 'billingStart' => ['Number'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'eligibleQuantity' => ['QuantitativeValue'], - 'eligibleTransactionVolume' => ['PriceSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maxPrice' => ['Number'], - 'minPrice' => ['Number'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'price' => ['Text', 'Number'], - 'priceComponentType' => ['PriceComponentTypeEnumeration'], - 'priceCurrency' => ['Text'], - 'priceType' => ['Text', 'PriceTypeEnumeration'], - 'referenceQuantity' => ['QuantitativeValue'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'unitCode' => ['Text', 'URL'], - 'unitText' => ['Text'], - 'url' => ['URL'], - 'validFrom' => ['Date', 'DateTime'], - 'validThrough' => ['Date', 'DateTime'], - 'valueAddedTaxIncluded' => ['Boolean'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'billingDuration' => 'Specifies for how long this price (or price component) will be billed. Can be used, for example, to model the contractual duration of a subscription or payment plan. Type can be either a Duration or a Number (in which case the unit of measurement, for example month, is specified by the unitCode property).', - 'billingIncrement' => 'This property specifies the minimal quantity and rounding increment that will be the basis for the billing. The unit of measurement is specified by the unitCode property.', - 'billingStart' => 'Specifies after how much time this price (or price component) becomes valid and billing starts. Can be used, for example, to model a price increase after the first year of a subscription. The unit of measurement is specified by the unitCode property.', - 'description' => 'A description of the item.', - '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.', - 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', - 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maxPrice' => 'The highest price if the price is a range.', - 'minPrice' => 'The lowest price if the price is a range.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', - 'priceComponentType' => 'Identifies a price component (for example, a line item on an invoice), part of the total price for an offer.', - 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', - 'priceType' => 'Defines the type of a price specified for an offered product, for example a list price, a (temporary) sale price or a manufacturer suggested retail price. If multiple prices are specified for an offer the [[priceType]] property can be used to identify the type of each such specified price. The value of priceType can be specified as a value from enumeration PriceTypeEnumeration or as a free form text string for price types that are not already predefined in PriceTypeEnumeration.', - 'referenceQuantity' => 'The reference quantity for which a certain price applies, e.g. 1 EUR per 4 kWh of electricity. This property is a replacement for unitOfMeasurement for the advanced cases where the price does not relate to a standard unit.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', - 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', - 'url' => 'URL of the item.', - 'validFrom' => 'The date when the item becomes valid.', - 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', - 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UnitPriceSpecificationTrait; + use PriceSpecificationTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UnitPriceSpecification'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UnitPriceSpecification'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'PriceSpecification'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The price asked for a given offer by the respective organization or person.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'billingDuration' => ['Number', 'QuantitativeValue', 'Duration'], + 'billingIncrement' => ['Number'], + 'billingStart' => ['Number'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'eligibleQuantity' => ['QuantitativeValue'], + 'eligibleTransactionVolume' => ['PriceSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maxPrice' => ['Number'], + 'minPrice' => ['Number'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'price' => ['Text', 'Number'], + 'priceComponentType' => ['PriceComponentTypeEnumeration'], + 'priceCurrency' => ['Text'], + 'priceType' => ['Text', 'PriceTypeEnumeration'], + 'referenceQuantity' => ['QuantitativeValue'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'unitCode' => ['Text', 'URL'], + 'unitText' => ['Text'], + 'url' => ['URL'], + 'validFrom' => ['Date', 'DateTime'], + 'validThrough' => ['Date', 'DateTime'], + 'valueAddedTaxIncluded' => ['Boolean'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'billingDuration' => 'Specifies for how long this price (or price component) will be billed. Can be used, for example, to model the contractual duration of a subscription or payment plan. Type can be either a Duration or a Number (in which case the unit of measurement, for example month, is specified by the unitCode property).', + 'billingIncrement' => 'This property specifies the minimal quantity and rounding increment that will be the basis for the billing. The unit of measurement is specified by the unitCode property.', + 'billingStart' => 'Specifies after how much time this price (or price component) becomes valid and billing starts. Can be used, for example, to model a price increase after the first year of a subscription. The unit of measurement is specified by the unitCode property.', + 'description' => 'A description of the item.', + '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.', + 'eligibleQuantity' => 'The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.', + 'eligibleTransactionVolume' => 'The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maxPrice' => 'The highest price if the price is a range.', + 'minPrice' => 'The lowest price if the price is a range.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'price' => 'The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes. Usage guidelines: * Use the [[priceCurrency]] property (with 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") instead of including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as \'$\' in the value. * Use \'.\' (Unicode \'FULL STOP\' (U+002E)) rather than \',\' to indicate a decimal point. Avoid using these symbols as a readability separator. * Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting. * Use values from 0123456789 (Unicode \'DIGIT ZERO\' (U+0030) to \'DIGIT NINE\' (U+0039)) rather than superficially similar Unicode symbols. ', + 'priceComponentType' => 'Identifies a price component (for example, a line item on an invoice), part of the total price for an offer.', + 'priceCurrency' => 'The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes. 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".', + 'priceType' => 'Defines the type of a price specified for an offered product, for example a list price, a (temporary) sale price or a manufacturer suggested retail price. If multiple prices are specified for an offer the [[priceType]] property can be used to identify the type of each such specified price. The value of priceType can be specified as a value from enumeration PriceTypeEnumeration or as a free form text string for price types that are not already predefined in PriceTypeEnumeration.', + 'referenceQuantity' => 'The reference quantity for which a certain price applies, e.g. 1 EUR per 4 kWh of electricity. This property is a replacement for unitOfMeasurement for the advanced cases where the price does not relate to a standard unit.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'unitCode' => 'The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.', + 'unitText' => 'A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for unitCode.', + 'url' => 'URL of the item.', + 'validFrom' => 'The date when the item becomes valid.', + 'validThrough' => 'The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.', + 'valueAddedTaxIncluded' => 'Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UnofficialLegalValue.php b/src/models/jsonld/UnofficialLegalValue.php index 9227ec70c..42028e036 100644 --- a/src/models/jsonld/UnofficialLegalValue.php +++ b/src/models/jsonld/UnofficialLegalValue.php @@ -24,126 +24,126 @@ */ class UnofficialLegalValue extends MetaJsonLd implements UnofficialLegalValueInterface, LegalValueLevelInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UnofficialLegalValueTrait; - use LegalValueLevelTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UnofficialLegalValue'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UnofficialLegalValue'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'LegalValueLevel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that a document has no particular or special standing (e.g. a republication of a law by a private publisher).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UnofficialLegalValueTrait; + use LegalValueLevelTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UnofficialLegalValue'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UnofficialLegalValue'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'LegalValueLevel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that a document has no particular or special standing (e.g. a republication of a law by a private publisher).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UpdateAction.php b/src/models/jsonld/UpdateAction.php index 8c8f417bc..d1d2dfd82 100644 --- a/src/models/jsonld/UpdateAction.php +++ b/src/models/jsonld/UpdateAction.php @@ -23,150 +23,150 @@ */ class UpdateAction extends MetaJsonLd implements UpdateActionInterface, ActionInterface, ThingInterface { - use UpdateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UpdateAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UpdateAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Action'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of managing by changing/editing the state of the object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'collection' => ['Thing'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'targetCollection' => ['Thing'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'collection' => 'A sub property of object. The collection target of the action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'targetCollection' => 'A sub property of object. The collection target of the action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UpdateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UpdateAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UpdateAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Action'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of managing by changing/editing the state of the object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'collection' => ['Thing'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'targetCollection' => ['Thing'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'collection' => 'A sub property of object. The collection target of the action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'targetCollection' => 'A sub property of object. The collection target of the action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Urologic.php b/src/models/jsonld/Urologic.php index 58e952262..fd85e3530 100644 --- a/src/models/jsonld/Urologic.php +++ b/src/models/jsonld/Urologic.php @@ -25,128 +25,128 @@ */ class Urologic extends MetaJsonLd implements UrologicInterface, MedicalSpecialtyInterface, SpecialtyInterface, EnumerationInterface, IntangibleInterface, ThingInterface, MedicalEnumerationInterface { - use UrologicTrait; - use MedicalSpecialtyTrait; - use SpecialtyTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - use MedicalEnumerationTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Urologic'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Urologic'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSpecialty'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the diagnosis and treatment of diseases pertaining to the urinary tract and the urogenital system.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UrologicTrait; + use MedicalSpecialtyTrait; + use SpecialtyTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + use MedicalEnumerationTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Urologic'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Urologic'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSpecialty'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific branch of medical science that is concerned with the diagnosis and treatment of diseases pertaining to the urinary tract and the urogenital system.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UsageOrScheduleHealthAspect.php b/src/models/jsonld/UsageOrScheduleHealthAspect.php index 30269d887..86c1a0ae8 100644 --- a/src/models/jsonld/UsageOrScheduleHealthAspect.php +++ b/src/models/jsonld/UsageOrScheduleHealthAspect.php @@ -23,126 +23,126 @@ */ class UsageOrScheduleHealthAspect extends MetaJsonLd implements UsageOrScheduleHealthAspectInterface, HealthAspectEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UsageOrScheduleHealthAspectTrait; - use HealthAspectEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UsageOrScheduleHealthAspect'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UsageOrScheduleHealthAspect'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'HealthAspectEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Content about how, when, frequency and dosage of a topic.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UsageOrScheduleHealthAspectTrait; + use HealthAspectEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UsageOrScheduleHealthAspect'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UsageOrScheduleHealthAspect'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'HealthAspectEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Content about how, when, frequency and dosage of a topic.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UseAction.php b/src/models/jsonld/UseAction.php index 8e45f44e9..b31404931 100644 --- a/src/models/jsonld/UseAction.php +++ b/src/models/jsonld/UseAction.php @@ -23,151 +23,151 @@ */ class UseAction extends MetaJsonLd implements UseActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use UseActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UseAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UseAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of applying an object to its intended purpose.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UseActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UseAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UseAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of applying an object to its intended purpose.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UsedCondition.php b/src/models/jsonld/UsedCondition.php index 86f32ffa2..80523373d 100644 --- a/src/models/jsonld/UsedCondition.php +++ b/src/models/jsonld/UsedCondition.php @@ -23,126 +23,126 @@ */ class UsedCondition extends MetaJsonLd implements UsedConditionInterface, OfferItemConditionInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use UsedConditionTrait; - use OfferItemConditionTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UsedCondition'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UsedCondition'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'OfferItemCondition'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Indicates that the item is used.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UsedConditionTrait; + use OfferItemConditionTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UsedCondition'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UsedCondition'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'OfferItemCondition'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Indicates that the item is used.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserBlocks.php b/src/models/jsonld/UserBlocks.php index 7f45bfb32..084b59491 100644 --- a/src/models/jsonld/UserBlocks.php +++ b/src/models/jsonld/UserBlocks.php @@ -25,205 +25,205 @@ */ class UserBlocks extends MetaJsonLd implements UserBlocksInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserBlocksTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserBlocks'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserBlocks'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserBlocksTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserBlocks'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserBlocks'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserCheckins.php b/src/models/jsonld/UserCheckins.php index b2d2f35b8..77980c0f9 100644 --- a/src/models/jsonld/UserCheckins.php +++ b/src/models/jsonld/UserCheckins.php @@ -25,205 +25,205 @@ */ class UserCheckins extends MetaJsonLd implements UserCheckinsInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserCheckinsTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserCheckins'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserCheckins'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserCheckinsTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserCheckins'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserCheckins'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserComments.php b/src/models/jsonld/UserComments.php index 3a006075c..26c6d450c 100644 --- a/src/models/jsonld/UserComments.php +++ b/src/models/jsonld/UserComments.php @@ -25,215 +25,215 @@ */ class UserComments extends MetaJsonLd implements UserCommentsInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserCommentsTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserComments'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserComments'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'commentText' => ['Text'], - 'commentTime' => ['DateTime', 'Date'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'creator' => ['Person', 'Organization'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discusses' => ['CreativeWork'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'replyToUrl' => ['URL'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'commentText' => 'The text of the UserComment.', - 'commentTime' => 'The time at which the UserComment was made.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discusses' => 'Specifies the CreativeWork associated with the UserComment.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'replyToUrl' => 'The URL at which a reply may be posted to the specified UserComment.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserCommentsTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserComments'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserComments'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'commentText' => ['Text'], + 'commentTime' => ['DateTime', 'Date'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'creator' => ['Person', 'Organization'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discusses' => ['CreativeWork'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'replyToUrl' => ['URL'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'commentText' => 'The text of the UserComment.', + 'commentTime' => 'The time at which the UserComment was made.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discusses' => 'Specifies the CreativeWork associated with the UserComment.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'replyToUrl' => 'The URL at which a reply may be posted to the specified UserComment.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserDownloads.php b/src/models/jsonld/UserDownloads.php index 4afdf2397..65001ef79 100644 --- a/src/models/jsonld/UserDownloads.php +++ b/src/models/jsonld/UserDownloads.php @@ -25,205 +25,205 @@ */ class UserDownloads extends MetaJsonLd implements UserDownloadsInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserDownloadsTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserDownloads'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserDownloads'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserDownloadsTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserDownloads'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserDownloads'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserInteraction.php b/src/models/jsonld/UserInteraction.php index 6afdd1896..27ea9335d 100644 --- a/src/models/jsonld/UserInteraction.php +++ b/src/models/jsonld/UserInteraction.php @@ -25,204 +25,204 @@ */ class UserInteraction extends MetaJsonLd implements UserInteractionInterface, EventInterface, ThingInterface { - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserInteraction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserInteraction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserInteraction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserInteraction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserLikes.php b/src/models/jsonld/UserLikes.php index ab7855909..8b60129e2 100644 --- a/src/models/jsonld/UserLikes.php +++ b/src/models/jsonld/UserLikes.php @@ -25,205 +25,205 @@ */ class UserLikes extends MetaJsonLd implements UserLikesInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserLikesTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserLikes'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserLikes'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserLikesTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserLikes'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserLikes'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserPageVisits.php b/src/models/jsonld/UserPageVisits.php index 4ebc97f56..d220a4b18 100644 --- a/src/models/jsonld/UserPageVisits.php +++ b/src/models/jsonld/UserPageVisits.php @@ -25,205 +25,205 @@ */ class UserPageVisits extends MetaJsonLd implements UserPageVisitsInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserPageVisitsTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserPageVisits'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserPageVisits'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserPageVisitsTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserPageVisits'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserPageVisits'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserPlays.php b/src/models/jsonld/UserPlays.php index 65d1c3c19..798619682 100644 --- a/src/models/jsonld/UserPlays.php +++ b/src/models/jsonld/UserPlays.php @@ -25,205 +25,205 @@ */ class UserPlays extends MetaJsonLd implements UserPlaysInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserPlaysTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserPlays'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserPlays'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserPlaysTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserPlays'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserPlays'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserPlusOnes.php b/src/models/jsonld/UserPlusOnes.php index 1c4124785..5d69abdeb 100644 --- a/src/models/jsonld/UserPlusOnes.php +++ b/src/models/jsonld/UserPlusOnes.php @@ -25,205 +25,205 @@ */ class UserPlusOnes extends MetaJsonLd implements UserPlusOnesInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserPlusOnesTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserPlusOnes'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserPlusOnes'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserPlusOnesTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserPlusOnes'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserPlusOnes'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/UserReview.php b/src/models/jsonld/UserReview.php index a211d3a75..61c05fb18 100644 --- a/src/models/jsonld/UserReview.php +++ b/src/models/jsonld/UserReview.php @@ -24,365 +24,365 @@ */ class UserReview extends MetaJsonLd implements UserReviewInterface, ReviewInterface, CreativeWorkInterface, ThingInterface { - use UserReviewTrait; - use ReviewTrait; - use CreativeWorkTrait; - use ThingTrait; + use UserReviewTrait; + use ReviewTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserReview'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserReview'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserReview'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserReview'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Review'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Review'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A review created by an end-user (e.g. consumer, purchaser, attendee etc.), in contrast with [[CriticReview]].'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A review created by an end-user (e.g. consumer, purchaser, attendee etc.), in contrast with [[CriticReview]].'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedClaimReview' => ['Review'], - 'associatedMedia' => ['MediaObject'], - 'associatedMediaReview' => ['Review'], - 'associatedReview' => ['Review'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'itemReviewed' => ['Thing'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewAspect' => ['Text'], - 'reviewBody' => ['Text'], - 'reviewRating' => ['Rating'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedClaimReview' => ['Review'], + 'associatedMedia' => ['MediaObject'], + 'associatedMediaReview' => ['Review'], + 'associatedReview' => ['Review'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'itemReviewed' => ['Thing'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewAspect' => ['Text'], + 'reviewBody' => ['Text'], + 'reviewRating' => ['Rating'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', - 'associatedReview' => 'An associated [[Review]].', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'itemReviewed' => 'The item that is being reviewed/rated.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', - 'reviewBody' => 'The actual body of the review.', - 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedClaimReview' => 'An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'associatedMediaReview' => 'An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].', + 'associatedReview' => 'An associated [[Review]].', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'itemReviewed' => 'The item that is being reviewed/rated.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewAspect' => 'This Review or Rating is relevant to this part or facet of the itemReviewed.', + 'reviewBody' => 'The actual body of the review.', + 'reviewRating' => 'The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/UserTweets.php b/src/models/jsonld/UserTweets.php index 8f5a7bb72..39e3e0c63 100644 --- a/src/models/jsonld/UserTweets.php +++ b/src/models/jsonld/UserTweets.php @@ -25,205 +25,205 @@ */ class UserTweets extends MetaJsonLd implements UserTweetsInterface, UserInteractionInterface, EventInterface, ThingInterface { - use UserTweetsTrait; - use UserInteractionTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'UserTweets'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/UserTweets'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UserInteraction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use UserTweetsTrait; + use UserInteractionTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'UserTweets'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/UserTweets'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UserInteraction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VeganDiet.php b/src/models/jsonld/VeganDiet.php index 7a9ad1b89..1eab1a25d 100644 --- a/src/models/jsonld/VeganDiet.php +++ b/src/models/jsonld/VeganDiet.php @@ -23,126 +23,126 @@ */ class VeganDiet extends MetaJsonLd implements VeganDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use VeganDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VeganDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VeganDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet exclusive of all animal products.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VeganDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VeganDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VeganDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet exclusive of all animal products.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VegetarianDiet.php b/src/models/jsonld/VegetarianDiet.php index 87ac3d744..d85832df3 100644 --- a/src/models/jsonld/VegetarianDiet.php +++ b/src/models/jsonld/VegetarianDiet.php @@ -23,126 +23,126 @@ */ class VegetarianDiet extends MetaJsonLd implements VegetarianDietInterface, RestrictedDietInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use VegetarianDietTrait; - use RestrictedDietTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VegetarianDiet'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VegetarianDiet'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'RestrictedDiet'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A diet exclusive of animal meat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VegetarianDietTrait; + use RestrictedDietTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VegetarianDiet'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VegetarianDiet'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'RestrictedDiet'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A diet exclusive of animal meat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Vehicle.php b/src/models/jsonld/Vehicle.php index 54470fd95..ea13af64d 100644 --- a/src/models/jsonld/Vehicle.php +++ b/src/models/jsonld/Vehicle.php @@ -24,306 +24,306 @@ */ class Vehicle extends MetaJsonLd implements VehicleInterface, ProductInterface, ThingInterface { - use VehicleTrait; - use ProductTrait; - use ThingTrait; + use VehicleTrait; + use ProductTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Vehicle'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Vehicle'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Vehicle'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Vehicle'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Product'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Product'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'accelerationTime' => ['QuantitativeValue'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'asin' => ['Text', 'URL'], - 'audience' => ['Audience'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bodyType' => ['URL', 'QualitativeValue', 'Text'], - 'brand' => ['Brand', 'Organization'], - 'callSign' => ['Text'], - 'cargoVolume' => ['QuantitativeValue'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'color' => ['Text'], - 'countryOfAssembly' => ['Text'], - 'countryOfLastProcessing' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'dateVehicleFirstRegistered' => ['Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], - 'emissionsCO2' => ['Number'], - 'fuelCapacity' => ['QuantitativeValue'], - 'fuelConsumption' => ['QuantitativeValue'], - 'fuelEfficiency' => ['QuantitativeValue'], - 'fuelType' => ['URL', 'QualitativeValue', 'Text'], - 'funding' => ['Grant'], - 'gtin' => ['Text', 'URL'], - 'gtin12' => ['Text'], - 'gtin13' => ['Text'], - 'gtin14' => ['Text'], - 'gtin8' => ['Text'], - 'hasAdultConsideration' => ['AdultOrientedEnumeration'], - 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], - 'hasMeasurement' => ['QuantitativeValue'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inProductGroupWithID' => ['Text'], - 'isAccessoryOrSparePartFor' => ['Product'], - 'isConsumableFor' => ['Product'], - 'isFamilyFriendly' => ['Boolean'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'isVariantOf' => ['ProductModel', 'ProductGroup'], - 'itemCondition' => ['OfferItemCondition'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knownVehicleDamages' => ['Text'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'manufacturer' => ['Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], - 'mileageFromOdometer' => ['QuantitativeValue'], - 'mobileUrl' => ['Text'], - 'model' => ['ProductModel', 'Text'], - 'modelDate' => ['Date'], - 'mpn' => ['Text'], - 'name' => ['Text'], - 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], - 'nsn' => ['Text'], - 'numberOfAirbags' => ['Number', 'Text'], - 'numberOfAxles' => ['Number', 'QuantitativeValue'], - 'numberOfDoors' => ['Number', 'QuantitativeValue'], - 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], - 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'payload' => ['QuantitativeValue'], - 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], - 'potentialAction' => ['Action'], - 'productID' => ['Text'], - 'productionDate' => ['Date'], - 'purchaseDate' => ['Date'], - 'releaseDate' => ['Date'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seatingCapacity' => ['Number', 'QuantitativeValue'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sku' => ['Text'], - 'slogan' => ['Text'], - 'speed' => ['QuantitativeValue'], - 'steeringPosition' => ['SteeringPositionValue'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'tongueWeight' => ['QuantitativeValue'], - 'trailerWeight' => ['QuantitativeValue'], - 'url' => ['URL'], - 'vehicleConfiguration' => ['Text'], - 'vehicleEngine' => ['EngineSpecification'], - 'vehicleIdentificationNumber' => ['Text'], - 'vehicleInteriorColor' => ['Text'], - 'vehicleInteriorType' => ['Text'], - 'vehicleModelDate' => ['Date'], - 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], - 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], - 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], - 'weight' => ['QuantitativeValue'], - 'weightTotal' => ['QuantitativeValue'], - 'wheelbase' => ['QuantitativeValue'], - 'width' => ['Distance', 'QuantitativeValue'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'accelerationTime' => ['QuantitativeValue'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'asin' => ['Text', 'URL'], + 'audience' => ['Audience'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bodyType' => ['URL', 'QualitativeValue', 'Text'], + 'brand' => ['Brand', 'Organization'], + 'callSign' => ['Text'], + 'cargoVolume' => ['QuantitativeValue'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'color' => ['Text'], + 'countryOfAssembly' => ['Text'], + 'countryOfLastProcessing' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'dateVehicleFirstRegistered' => ['Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'driveWheelConfiguration' => ['Text', 'DriveWheelConfigurationValue'], + 'emissionsCO2' => ['Number'], + 'fuelCapacity' => ['QuantitativeValue'], + 'fuelConsumption' => ['QuantitativeValue'], + 'fuelEfficiency' => ['QuantitativeValue'], + 'fuelType' => ['URL', 'QualitativeValue', 'Text'], + 'funding' => ['Grant'], + 'gtin' => ['Text', 'URL'], + 'gtin12' => ['Text'], + 'gtin13' => ['Text'], + 'gtin14' => ['Text'], + 'gtin8' => ['Text'], + 'hasAdultConsideration' => ['AdultOrientedEnumeration'], + 'hasEnergyConsumptionDetails' => ['EnergyConsumptionDetails'], + 'hasMeasurement' => ['QuantitativeValue'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inProductGroupWithID' => ['Text'], + 'isAccessoryOrSparePartFor' => ['Product'], + 'isConsumableFor' => ['Product'], + 'isFamilyFriendly' => ['Boolean'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'isVariantOf' => ['ProductModel', 'ProductGroup'], + 'itemCondition' => ['OfferItemCondition'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knownVehicleDamages' => ['Text'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'manufacturer' => ['Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'meetsEmissionStandard' => ['Text', 'URL', 'QualitativeValue'], + 'mileageFromOdometer' => ['QuantitativeValue'], + 'mobileUrl' => ['Text'], + 'model' => ['ProductModel', 'Text'], + 'modelDate' => ['Date'], + 'mpn' => ['Text'], + 'name' => ['Text'], + 'negativeNotes' => ['ListItem', 'Text', 'ItemList', 'WebContent'], + 'nsn' => ['Text'], + 'numberOfAirbags' => ['Number', 'Text'], + 'numberOfAxles' => ['Number', 'QuantitativeValue'], + 'numberOfDoors' => ['Number', 'QuantitativeValue'], + 'numberOfForwardGears' => ['Number', 'QuantitativeValue'], + 'numberOfPreviousOwners' => ['QuantitativeValue', 'Number'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'payload' => ['QuantitativeValue'], + 'positiveNotes' => ['Text', 'WebContent', 'ListItem', 'ItemList'], + 'potentialAction' => ['Action'], + 'productID' => ['Text'], + 'productionDate' => ['Date'], + 'purchaseDate' => ['Date'], + 'releaseDate' => ['Date'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seatingCapacity' => ['Number', 'QuantitativeValue'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sku' => ['Text'], + 'slogan' => ['Text'], + 'speed' => ['QuantitativeValue'], + 'steeringPosition' => ['SteeringPositionValue'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'tongueWeight' => ['QuantitativeValue'], + 'trailerWeight' => ['QuantitativeValue'], + 'url' => ['URL'], + 'vehicleConfiguration' => ['Text'], + 'vehicleEngine' => ['EngineSpecification'], + 'vehicleIdentificationNumber' => ['Text'], + 'vehicleInteriorColor' => ['Text'], + 'vehicleInteriorType' => ['Text'], + 'vehicleModelDate' => ['Date'], + 'vehicleSeatingCapacity' => ['Number', 'QuantitativeValue'], + 'vehicleSpecialUsage' => ['CarUsageType', 'Text'], + 'vehicleTransmission' => ['Text', 'URL', 'QualitativeValue'], + 'weight' => ['QuantitativeValue'], + 'weightTotal' => ['QuantitativeValue'], + 'wheelbase' => ['QuantitativeValue'], + 'width' => ['Distance', 'QuantitativeValue'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', - '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. ', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'color' => 'The color of the product.', - 'countryOfAssembly' => 'The place where the product was assembled.', - 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', - 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', - 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', - 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', - 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', - 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', - 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', - 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', - 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', - 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', - 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', - 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', - '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.', - 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', - 'logo' => 'An associated logo.', - '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.', - 'manufacturer' => 'The manufacturer of the product.', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', - 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', - 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', - 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', - 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', - 'name' => 'The name of the item.', - 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', - 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', - 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', - 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', - 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', - 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', - 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', - 'productionDate' => 'The date of production of the item, e.g. vehicle.', - 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', - 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', - 'slogan' => 'A slogan or motto associated with the item.', - 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', - 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'url' => 'URL of the item.', - 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', - 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', - 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', - 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', - 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', - 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', - 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', - 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', - 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', - 'weight' => 'The weight of the product or person.', - 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', - 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', - 'width' => 'The width of the item.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'accelerationTime' => 'The time needed to accelerate the vehicle from a given start velocity to a given target velocity. Typical unit code(s): SEC for seconds * Note: There are unfortunately no standard unit codes for seconds/0..100 km/h or seconds/0..60 mph. Simply use "SEC" for seconds and indicate the velocities in the [[name]] of the [[QuantitativeValue]], or use [[valueReference]] with a [[QuantitativeValue]] of 0..60 mph or 0..100 km/h to specify the reference speeds.', + '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. ', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'asin' => 'An Amazon Standard Identification Number (ASIN) is a 10-character alphanumeric unique identifier assigned by Amazon.com and its partners for product identification within the Amazon organization (summary from [Wikipedia](https://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number)\'s article). Note also that this is a definition for how to include ASINs in Schema.org data, and not a definition of ASINs in general - see documentation from Amazon for authoritative details. ASINs are most commonly encoded as text strings, but the [asin] property supports URL/URI as potential values too.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bodyType' => 'Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'cargoVolume' => 'The available volume for cargo or luggage. For automobiles, this is usually the trunk volume. Typical unit code(s): LTR for liters, FTQ for cubic foot/feet Note: You can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'color' => 'The color of the product.', + 'countryOfAssembly' => 'The place where the product was assembled.', + 'countryOfLastProcessing' => 'The place where the item (typically [[Product]]) was last processed and tested before importation.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'dateVehicleFirstRegistered' => 'The date of the first registration of the vehicle with the respective public authorities.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'driveWheelConfiguration' => 'The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle\'s engine via the drivetrain.', + 'emissionsCO2' => 'The CO2 emissions in g/km. When used in combination with a QuantitativeValue, put "g/km" into the unitText property of that value, since there is no UN/CEFACT Common Code for "g/km".', + 'fuelCapacity' => 'The capacity of the fuel tank or in the case of electric cars, the battery. If there are multiple components for storage, this should indicate the total of all storage of the same type. Typical unit code(s): LTR for liters, GLL of US gallons, GLI for UK / imperial gallons, AMH for ampere-hours (for electrical vehicles).', + 'fuelConsumption' => 'The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km). * Note 1: There are unfortunately no standard unit codes for liters per 100 km. Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.', + 'fuelEfficiency' => 'The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L). * Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L. * Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal. * Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.', + 'fuelType' => 'The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gtin' => 'A Global Trade Item Number ([GTIN](https://www.gs1.org/standards/id-keys/gtin)). GTINs identify trade items, including products and services, using numeric identification codes. The GS1 [digital link specifications](https://www.gs1.org/standards/Digital-Link/) express GTINs as URLs (URIs, IRIs, etc.). Details including regular expression examples can be found in, Section 6 of the GS1 URI Syntax specification; see also [schema.org tracking issue](https://github.com/schemaorg/schemaorg/issues/3156#issuecomment-1209522809) for schema.org-specific discussion. A correct [[gtin]] value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such a string. The numeric component should also have a [valid GS1 check digit](https://www.gs1.org/services/check-digit-calculator) and meet the other rules for valid GTINs. See also [GS1\'s GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) and [Wikipedia](https://en.wikipedia.org/wiki/Global_Trade_Item_Number) for more details. Left-padding of the gtin values is not required or encouraged. The [[gtin]] property generalizes the earlier [[gtin8]], [[gtin12]], [[gtin13]], and [[gtin14]] properties. Note also that this is a definition for how to include GTINs in Schema.org data, and not a definition of GTINs in general - see the GS1 documentation for authoritative details.', + 'gtin12' => 'The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin13' => 'The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin14' => 'The GTIN-14 code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'gtin8' => 'The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.', + 'hasAdultConsideration' => 'Used to tag an item to be intended or suitable for consumption or use by adults only.', + 'hasEnergyConsumptionDetails' => 'Defines the energy efficiency Category (also known as "class" or "rating") for a product according to an international energy efficiency standard.', + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'inProductGroupWithID' => 'Indicates the [[productGroupID]] for a [[ProductGroup]] that this product [[isVariantOf]]. ', + 'isAccessoryOrSparePartFor' => 'A pointer to another product (or multiple products) for which this product is an accessory or spare part.', + 'isConsumableFor' => 'A pointer to another product (or multiple products) for which this product is a consumable.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'isVariantOf' => 'Indicates the kind of product that this is a variant of. In the case of [[ProductModel]], this is a pointer (from a ProductModel) to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive. In the case of a [[ProductGroup]], the group description also serves as a template, representing a set of Products that vary on explicitly defined, specific dimensions only (so it defines both a set of variants, as well as which values distinguish amongst those variants). When used with [[ProductGroup]], this property can apply to any [[Product]] included in the group.', + 'itemCondition' => 'A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.', + '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.', + 'knownVehicleDamages' => 'A textual description of known damages, both repaired and unrepaired.', + 'logo' => 'An associated logo.', + '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.', + 'manufacturer' => 'The manufacturer of the product.', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'meetsEmissionStandard' => 'Indicates that the vehicle meets the respective emission standard.', + 'mileageFromOdometer' => 'The total distance travelled by the particular vehicle since its initial production, as read from its odometer. Typical unit code(s): KMT for kilometers, SMI for statute miles', + 'mobileUrl' => 'The [[mobileUrl]] property is provided for specific situations in which data consumers need to determine whether one of several provided URLs is a dedicated \'mobile site\'. To discourage over-use, and reflecting intial usecases, the property is expected only on [[Product]] and [[Offer]], rather than [[Thing]]. The general trend in web technology is towards [responsive design](https://en.wikipedia.org/wiki/Responsive_web_design) in which content can be flexibly adapted to a wide range of browsing environments. Pages and sites referenced with the long-established [[url]] property should ideally also be usable on a wide variety of devices, including mobile phones. In most cases, it would be pointless and counter productive to attempt to update all [[url]] markup to use [[mobileUrl]] for more mobile-oriented pages. The property is intended for the case when items (primarily [[Product]] and [[Offer]]) have extra URLs hosted on an additional "mobile site" alongside the main one. It should not be taken as an endorsement of this publication style. ', + 'model' => 'The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.', + 'modelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'mpn' => 'The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.', + 'name' => 'The name of the item.', + 'negativeNotes' => 'Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions tend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]]. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).', + 'nsn' => 'Indicates the [NATO stock number](https://en.wikipedia.org/wiki/NATO_Stock_Number) (nsn) of a [[Product]]. ', + 'numberOfAirbags' => 'The number or type of airbags in the vehicle.', + 'numberOfAxles' => 'The number of axles. Typical unit code(s): C62', + 'numberOfDoors' => 'The number of doors. Typical unit code(s): C62', + 'numberOfForwardGears' => 'The total number of forward gears available for the transmission system of the vehicle. Typical unit code(s): C62', + 'numberOfPreviousOwners' => 'The number of owners of the vehicle, including the current one. Typical unit code(s): C62', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'payload' => 'The permitted weight of passengers and cargo, EXCLUDING the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: Many databases specify the permitted TOTAL weight instead, which is the sum of [[weight]] and [[payload]] * Note 2: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 3: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 4: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'positiveNotes' => 'Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews. In the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. The property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'productID' => 'The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.', + 'productionDate' => 'The date of production of the item, e.g. vehicle.', + 'purchaseDate' => 'The date the item, e.g. vehicle, was purchased by the current owner.', + 'releaseDate' => 'The release date of a product or product model. This can be used to distinguish the exact variant of a product.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seatingCapacity' => 'The number of persons that can be seated (e.g. in a vehicle), both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons ', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sku' => 'The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.', + 'slogan' => 'A slogan or motto associated with the item.', + 'speed' => 'The speed range of the vehicle. If the vehicle is powered by an engine, the upper limit of the speed range (indicated by [[maxValue]]) should be the maximum speed achievable under regular conditions. Typical unit code(s): KMH for km/h, HM for mile per hour (0.447 04 m/s), KNT for knot *Note 1: Use [[minValue]] and [[maxValue]] to indicate the range. Typically, the minimal value is zero. * Note 2: There are many different ways of measuring the speed range. You can link to information about how the given value has been determined using the [[valueReference]] property.', + 'steeringPosition' => 'The position of the steering wheel or similar device (mostly for cars).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'tongueWeight' => 'The permitted vertical load (TWR) of a trailer attached to the vehicle. Also referred to as Tongue Load Rating (TLR) or Vertical Load Rating (VLR). Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'trailerWeight' => 'The permitted weight of a trailer attached to the vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'url' => 'URL of the item.', + 'vehicleConfiguration' => 'A short text indicating the configuration of the vehicle, e.g. \'5dr hatchback ST 2.5 MT 225 hp\' or \'limited edition\'.', + 'vehicleEngine' => 'Information about the engine or engines of the vehicle.', + 'vehicleIdentificationNumber' => 'The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.', + 'vehicleInteriorColor' => 'The color or color combination of the interior of the vehicle.', + 'vehicleInteriorType' => 'The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.', + 'vehicleModelDate' => 'The release date of a vehicle model (often used to differentiate versions of the same make and model).', + 'vehicleSeatingCapacity' => 'The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law. Typical unit code(s): C62 for persons.', + 'vehicleSpecialUsage' => 'Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.', + 'vehicleTransmission' => 'The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).', + 'weight' => 'The weight of the product or person.', + 'weightTotal' => 'The permitted total weight of the loaded vehicle, including passengers and cargo and the weight of the empty vehicle. Typical unit code(s): KGM for kilogram, LBR for pound * Note 1: You can indicate additional information in the [[name]] of the [[QuantitativeValue]] node. * Note 2: You may also link to a [[QualitativeValue]] node that provides additional information using [[valueReference]]. * Note 3: Note that you can use [[minValue]] and [[maxValue]] to indicate ranges.', + 'wheelbase' => 'The distance between the centers of the front and rear wheels. Typical unit code(s): CMT for centimeters, MTR for meters, INH for inches, FOT for foot/feet', + 'width' => 'The width of the item.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Vein.php b/src/models/jsonld/Vein.php index 0609feab0..5bd6620ba 100644 --- a/src/models/jsonld/Vein.php +++ b/src/models/jsonld/Vein.php @@ -23,162 +23,162 @@ */ class Vein extends MetaJsonLd implements VeinInterface, VesselInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use VeinTrait; - use VesselTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Vein'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Vein'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Vessel'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A type of blood vessel that specifically carries blood to the heart.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'drainsTo' => ['Vessel'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'regionDrained' => ['AnatomicalSystem', 'AnatomicalStructure'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'tributary' => ['AnatomicalStructure'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'drainsTo' => 'The vasculature that the vein drains into.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'regionDrained' => 'The anatomical or organ system drained by this vessel; generally refers to a specific part of an organ.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'tributary' => 'The anatomical or organ system that the vein flows into; a larger structure that the vein connects to.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VeinTrait; + use VesselTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Vein'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Vein'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Vessel'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A type of blood vessel that specifically carries blood to the heart.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'drainsTo' => ['Vessel'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'regionDrained' => ['AnatomicalSystem', 'AnatomicalStructure'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'tributary' => ['AnatomicalStructure'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'drainsTo' => 'The vasculature that the vein drains into.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'regionDrained' => 'The anatomical or organ system drained by this vessel; generally refers to a specific part of an organ.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'tributary' => 'The anatomical or organ system that the vein flows into; a larger structure that the vein connects to.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VenueMap.php b/src/models/jsonld/VenueMap.php index a2329943f..84ef12476 100644 --- a/src/models/jsonld/VenueMap.php +++ b/src/models/jsonld/VenueMap.php @@ -23,126 +23,126 @@ */ class VenueMap extends MetaJsonLd implements VenueMapInterface, MapCategoryTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use VenueMapTrait; - use MapCategoryTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VenueMap'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VenueMap'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MapCategoryType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A venue map (e.g. for malls, auditoriums, museums, etc.).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VenueMapTrait; + use MapCategoryTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VenueMap'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VenueMap'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MapCategoryType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A venue map (e.g. for malls, auditoriums, museums, etc.).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Vessel.php b/src/models/jsonld/Vessel.php index 19d13f200..8e75eb372 100644 --- a/src/models/jsonld/Vessel.php +++ b/src/models/jsonld/Vessel.php @@ -24,155 +24,155 @@ */ class Vessel extends MetaJsonLd implements VesselInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface { - use VesselTrait; - use AnatomicalStructureTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Vessel'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Vessel'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AnatomicalStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A component of the human body circulatory system comprised of an intricate network of hollow tubes that transport blood throughout the entire body.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedPathophysiology' => ['Text'], - 'bodyLocation' => ['Text'], - 'code' => ['MedicalCode'], - 'connectedTo' => ['AnatomicalStructure'], - 'description' => ['Text'], - 'diagram' => ['ImageObject'], - 'disambiguatingDescription' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'partOfSystem' => ['AnatomicalSystem'], - 'potentialAction' => ['Action'], - 'recognizingAuthority' => ['Organization'], - 'relatedCondition' => ['MedicalCondition'], - 'relatedTherapy' => ['MedicalTherapy'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'sameAs' => ['URL'], - 'study' => ['MedicalStudy'], - 'subStructure' => ['AnatomicalStructure'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - '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.', - 'bodyLocation' => 'Location in the body of the anatomical structure.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', - 'description' => 'A description of the item.', - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', - '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.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relatedCondition' => 'A medical condition associated with this anatomy.', - 'relatedTherapy' => 'A medical therapy related to this anatomy.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - '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.', - 'study' => 'A medical study or trial related to this entity.', - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VesselTrait; + use AnatomicalStructureTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Vessel'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Vessel'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AnatomicalStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A component of the human body circulatory system comprised of an intricate network of hollow tubes that transport blood throughout the entire body.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedPathophysiology' => ['Text'], + 'bodyLocation' => ['Text'], + 'code' => ['MedicalCode'], + 'connectedTo' => ['AnatomicalStructure'], + 'description' => ['Text'], + 'diagram' => ['ImageObject'], + 'disambiguatingDescription' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'partOfSystem' => ['AnatomicalSystem'], + 'potentialAction' => ['Action'], + 'recognizingAuthority' => ['Organization'], + 'relatedCondition' => ['MedicalCondition'], + 'relatedTherapy' => ['MedicalTherapy'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'sameAs' => ['URL'], + 'study' => ['MedicalStudy'], + 'subStructure' => ['AnatomicalStructure'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + '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.', + 'bodyLocation' => 'Location in the body of the anatomical structure.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', + 'description' => 'A description of the item.', + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', + '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.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relatedCondition' => 'A medical condition associated with this anatomy.', + 'relatedTherapy' => 'A medical therapy related to this anatomy.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + '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.', + 'study' => 'A medical study or trial related to this entity.', + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VeterinaryCare.php b/src/models/jsonld/VeterinaryCare.php index 6eae9cc88..5ced4c98b 100644 --- a/src/models/jsonld/VeterinaryCare.php +++ b/src/models/jsonld/VeterinaryCare.php @@ -23,261 +23,261 @@ */ class VeterinaryCare extends MetaJsonLd implements VeterinaryCareInterface, MedicalOrganizationInterface, OrganizationInterface, ThingInterface { - use VeterinaryCareTrait; - use MedicalOrganizationTrait; - use OrganizationTrait; - use ThingTrait; + use VeterinaryCareTrait; + use MedicalOrganizationTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VeterinaryCare'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VeterinaryCare'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VeterinaryCare'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VeterinaryCare'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalOrganization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalOrganization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A vet\'s office.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A vet\'s office.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'healthPlanNetworkId' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAcceptingNewPatients' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'medicalSpecialty' => ['MedicalSpecialty'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'healthPlanNetworkId' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAcceptingNewPatients' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'medicalSpecialty' => ['MedicalSpecialty'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'medicalSpecialty' => 'A medical specialty of the provider.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + 'healthPlanNetworkId' => 'Name or unique ID of network. (Networks are often reused across different insurance plans.)', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAcceptingNewPatients' => 'Whether the provider is accepting new patients.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'medicalSpecialty' => 'A medical specialty of the provider.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/VideoGallery.php b/src/models/jsonld/VideoGallery.php index 9d15b466f..d23abb797 100644 --- a/src/models/jsonld/VideoGallery.php +++ b/src/models/jsonld/VideoGallery.php @@ -23,369 +23,369 @@ */ class VideoGallery extends MetaJsonLd implements VideoGalleryInterface, MediaGalleryInterface, CollectionPageInterface, WebPageInterface, CreativeWorkInterface, ThingInterface { - use VideoGalleryTrait; - use MediaGalleryTrait; - use CollectionPageTrait; - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use VideoGalleryTrait; + use MediaGalleryTrait; + use CollectionPageTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VideoGallery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VideoGallery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VideoGallery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VideoGallery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaGallery'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaGallery'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web page type: Video gallery page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web page type: Video gallery page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/VideoGame.php b/src/models/jsonld/VideoGame.php index eeb015251..5fe7e717e 100644 --- a/src/models/jsonld/VideoGame.php +++ b/src/models/jsonld/VideoGame.php @@ -24,430 +24,430 @@ */ class VideoGame extends MetaJsonLd implements VideoGameInterface, SoftwareApplicationInterface, CreativeWorkInterface, ThingInterface, GameInterface { - use VideoGameTrait; - use SoftwareApplicationTrait; - use CreativeWorkTrait; - use ThingTrait; - use GameTrait; + use VideoGameTrait; + use SoftwareApplicationTrait; + use CreativeWorkTrait; + use ThingTrait; + use GameTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VideoGame'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VideoGame'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VideoGame'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VideoGame'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SoftwareApplication'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SoftwareApplication'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A video game is an electronic game that involves human interaction with a user interface to generate visual feedback on a video device.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A video game is an electronic game that involves human interaction with a user interface to generate visual feedback on a video device.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'applicationCategory' => ['URL', 'Text'], - 'applicationSubCategory' => ['URL', 'Text'], - 'applicationSuite' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'availableOnDevice' => ['Text'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'characterAttribute' => ['Thing'], - 'cheatCode' => ['CreativeWork'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countriesNotSupported' => ['Text'], - 'countriesSupported' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'device' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downloadUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'featureList' => ['URL', 'Text'], - 'fileFormat' => ['Text', 'URL'], - 'fileSize' => ['Text'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'gameEdition' => ['Text'], - 'gameItem' => ['Thing'], - 'gameLocation' => ['PostalAddress', 'URL', 'Place'], - 'gamePlatform' => ['Thing', 'URL', 'Text'], - 'gameServer' => ['GameServer'], - 'gameTip' => ['CreativeWork'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'installUrl' => ['URL'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'memoryRequirements' => ['Text', 'URL'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'numberOfPlayers' => ['QuantitativeValue'], - 'offers' => ['Demand', 'Offer'], - 'operatingSystem' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'permissions' => ['Text'], - 'playMode' => ['GamePlayMode'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'processorRequirements' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'quest' => ['Thing'], - 'recordedAt' => ['Event'], - 'releaseNotes' => ['Text', 'URL'], - 'releasedEvent' => ['PublicationEvent'], - 'requirements' => ['Text', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'screenshot' => ['URL', 'ImageObject'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'softwareAddOn' => ['SoftwareApplication'], - 'softwareHelp' => ['CreativeWork'], - 'softwareRequirements' => ['Text', 'URL'], - 'softwareVersion' => ['Text'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'storageRequirements' => ['URL', 'Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supportingData' => ['DataFeed'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'applicationCategory' => ['URL', 'Text'], + 'applicationSubCategory' => ['URL', 'Text'], + 'applicationSuite' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'availableOnDevice' => ['Text'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'characterAttribute' => ['Thing'], + 'cheatCode' => ['CreativeWork'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countriesNotSupported' => ['Text'], + 'countriesSupported' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'device' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downloadUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'featureList' => ['URL', 'Text'], + 'fileFormat' => ['Text', 'URL'], + 'fileSize' => ['Text'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'gameEdition' => ['Text'], + 'gameItem' => ['Thing'], + 'gameLocation' => ['PostalAddress', 'URL', 'Place'], + 'gamePlatform' => ['Thing', 'URL', 'Text'], + 'gameServer' => ['GameServer'], + 'gameTip' => ['CreativeWork'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'installUrl' => ['URL'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'memoryRequirements' => ['Text', 'URL'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'numberOfPlayers' => ['QuantitativeValue'], + 'offers' => ['Demand', 'Offer'], + 'operatingSystem' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'permissions' => ['Text'], + 'playMode' => ['GamePlayMode'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'processorRequirements' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'quest' => ['Thing'], + 'recordedAt' => ['Event'], + 'releaseNotes' => ['Text', 'URL'], + 'releasedEvent' => ['PublicationEvent'], + 'requirements' => ['Text', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'screenshot' => ['URL', 'ImageObject'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'softwareAddOn' => ['SoftwareApplication'], + 'softwareHelp' => ['CreativeWork'], + 'softwareRequirements' => ['Text', 'URL'], + 'softwareVersion' => ['Text'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'storageRequirements' => ['URL', 'Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supportingData' => ['DataFeed'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', - 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', - 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'characterAttribute' => 'A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).', - 'cheatCode' => 'Cheat codes to the game.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gameEdition' => 'The edition of a video game.', - 'gameItem' => 'An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.', - 'gameLocation' => 'Real or fictional location of the game (or part of game).', - 'gamePlatform' => 'The electronic systems used to play video games.', - 'gameServer' => 'The server on which it is possible to play the game.', - 'gameTip' => 'Links to tips, tactics, etc.', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'memoryRequirements' => 'Minimum memory requirements.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - 'numberOfPlayers' => 'Indicate how many people can play this game (minimum, maximum, or range).', - '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. ', - 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', - 'playMode' => 'Indicates whether this game is multi-player, co-op or single-player. The game can be marked as multi-player, co-op and single-player at the same time.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'quest' => 'The task that a player-controlled character, or group of characters may complete in order to gain a reward.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releaseNotes' => 'Description of what changed in this version.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'screenshot' => 'A link to a screenshot image of the app.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'softwareAddOn' => 'Additional content for a software application.', - 'softwareHelp' => 'Software application help.', - 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'softwareVersion' => 'Version of the software instance.', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'storageRequirements' => 'Storage requirements (free space required).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supportingData' => 'Supporting data for a SoftwareApplication.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', + 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', + 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'characterAttribute' => 'A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).', + 'cheatCode' => 'Cheat codes to the game.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gameEdition' => 'The edition of a video game.', + 'gameItem' => 'An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.', + 'gameLocation' => 'Real or fictional location of the game (or part of game).', + 'gamePlatform' => 'The electronic systems used to play video games.', + 'gameServer' => 'The server on which it is possible to play the game.', + 'gameTip' => 'Links to tips, tactics, etc.', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'memoryRequirements' => 'Minimum memory requirements.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + 'numberOfPlayers' => 'Indicate how many people can play this game (minimum, maximum, or range).', + '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. ', + 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', + 'playMode' => 'Indicates whether this game is multi-player, co-op or single-player. The game can be marked as multi-player, co-op and single-player at the same time.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'quest' => 'The task that a player-controlled character, or group of characters may complete in order to gain a reward.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releaseNotes' => 'Description of what changed in this version.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'screenshot' => 'A link to a screenshot image of the app.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'softwareAddOn' => 'Additional content for a software application.', + 'softwareHelp' => 'Software application help.', + 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'softwareVersion' => 'Version of the software instance.', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'storageRequirements' => 'Storage requirements (free space required).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supportingData' => 'Supporting data for a SoftwareApplication.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/VideoGameClip.php b/src/models/jsonld/VideoGameClip.php index 9edbde5cc..b5005f6da 100644 --- a/src/models/jsonld/VideoGameClip.php +++ b/src/models/jsonld/VideoGameClip.php @@ -23,369 +23,369 @@ */ class VideoGameClip extends MetaJsonLd implements VideoGameClipInterface, ClipInterface, CreativeWorkInterface, ThingInterface { - use VideoGameClipTrait; - use ClipTrait; - use CreativeWorkTrait; - use ThingTrait; + use VideoGameClipTrait; + use ClipTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VideoGameClip'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VideoGameClip'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VideoGameClip'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VideoGameClip'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Clip'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Clip'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A short segment/part of a video game.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A short segment/part of a video game.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'clipNumber' => ['Integer', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endOffset' => ['Number', 'HyperTocEntry'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'partOfEpisode' => ['Episode'], - 'partOfSeason' => ['CreativeWorkSeason'], - 'partOfSeries' => ['CreativeWorkSeries'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startOffset' => ['Number', 'HyperTocEntry'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'clipNumber' => ['Integer', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endOffset' => ['Number', 'HyperTocEntry'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'partOfEpisode' => ['Episode'], + 'partOfSeason' => ['CreativeWorkSeason'], + 'partOfSeries' => ['CreativeWorkSeries'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startOffset' => ['Number', 'HyperTocEntry'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'clipNumber' => 'Position of the clip within an ordered group of clips.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'partOfEpisode' => 'The episode to which this clip belongs.', - 'partOfSeason' => 'The season to which this episode belongs.', - 'partOfSeries' => 'The series to which this episode or season belongs.', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'clipNumber' => 'Position of the clip within an ordered group of clips.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endOffset' => 'The end time of the clip expressed as the number of seconds from the beginning of the work.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'partOfEpisode' => 'The episode to which this clip belongs.', + 'partOfSeason' => 'The season to which this episode belongs.', + 'partOfSeries' => 'The series to which this episode or season belongs.', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startOffset' => 'The start time of the clip expressed as the number of seconds from the beginning of the work.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/VideoGameSeries.php b/src/models/jsonld/VideoGameSeries.php index c7434935b..3bcc97cc7 100644 --- a/src/models/jsonld/VideoGameSeries.php +++ b/src/models/jsonld/VideoGameSeries.php @@ -23,399 +23,399 @@ */ class VideoGameSeries extends MetaJsonLd implements VideoGameSeriesInterface, CreativeWorkSeriesInterface, SeriesInterface, IntangibleInterface, ThingInterface, CreativeWorkInterface { - use VideoGameSeriesTrait; - use CreativeWorkSeriesTrait; - use SeriesTrait; - use IntangibleTrait; - use ThingTrait; - use CreativeWorkTrait; + use VideoGameSeriesTrait; + use CreativeWorkSeriesTrait; + use SeriesTrait; + use IntangibleTrait; + use ThingTrait; + use CreativeWorkTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VideoGameSeries'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VideoGameSeries'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VideoGameSeries'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VideoGameSeries'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWorkSeries'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWorkSeries'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A video game series.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A video game series.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'characterAttribute' => ['Thing'], - 'cheatCode' => ['CreativeWork'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'containsSeason' => ['CreativeWorkSeason'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endDate' => ['DateTime', 'Date'], - 'episode' => ['Episode'], - 'episodes' => ['Episode'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'gameItem' => ['Thing'], - 'gameLocation' => ['PostalAddress', 'URL', 'Place'], - 'gamePlatform' => ['Thing', 'URL', 'Text'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'numberOfEpisodes' => ['Integer'], - 'numberOfPlayers' => ['QuantitativeValue'], - 'numberOfSeasons' => ['Integer'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playMode' => ['GamePlayMode'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'quest' => ['Thing'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'season' => ['URL', 'CreativeWorkSeason'], - 'seasons' => ['CreativeWorkSeason'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'trailer' => ['VideoObject'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'characterAttribute' => ['Thing'], + 'cheatCode' => ['CreativeWork'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'containsSeason' => ['CreativeWorkSeason'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endDate' => ['DateTime', 'Date'], + 'episode' => ['Episode'], + 'episodes' => ['Episode'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'gameItem' => ['Thing'], + 'gameLocation' => ['PostalAddress', 'URL', 'Place'], + 'gamePlatform' => ['Thing', 'URL', 'Text'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'numberOfEpisodes' => ['Integer'], + 'numberOfPlayers' => ['QuantitativeValue'], + 'numberOfSeasons' => ['Integer'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playMode' => ['GamePlayMode'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'quest' => ['Thing'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'season' => ['URL', 'CreativeWorkSeason'], + 'seasons' => ['CreativeWorkSeason'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'trailer' => ['VideoObject'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'characterAttribute' => 'A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).', - 'cheatCode' => 'Cheat codes to the game.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'containsSeason' => 'A season that is part of the media series.', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'episode' => 'An episode of a TV, radio or game media within a series or season.', - 'episodes' => 'An episode of a TV/radio series or season.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'gameItem' => 'An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.', - 'gameLocation' => 'Real or fictional location of the game (or part of game).', - 'gamePlatform' => 'The electronic systems used to play video games.', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - 'numberOfEpisodes' => 'The number of episodes in this season or series.', - 'numberOfPlayers' => 'Indicate how many people can play this game (minimum, maximum, or range).', - 'numberOfSeasons' => 'The number of seasons in this series.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playMode' => 'Indicates whether this game is multi-player, co-op or single-player. The game can be marked as multi-player, co-op and single-player at the same time.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'quest' => 'The task that a player-controlled character, or group of characters may complete in order to gain a reward.', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'season' => 'A season in a media series.', - 'seasons' => 'A season in a media series.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'characterAttribute' => 'A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).', + 'cheatCode' => 'Cheat codes to the game.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'containsSeason' => 'A season that is part of the media series.', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'episode' => 'An episode of a TV, radio or game media within a series or season.', + 'episodes' => 'An episode of a TV/radio series or season.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'gameItem' => 'An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.', + 'gameLocation' => 'Real or fictional location of the game (or part of game).', + 'gamePlatform' => 'The electronic systems used to play video games.', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + 'numberOfEpisodes' => 'The number of episodes in this season or series.', + 'numberOfPlayers' => 'Indicate how many people can play this game (minimum, maximum, or range).', + 'numberOfSeasons' => 'The number of seasons in this series.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playMode' => 'Indicates whether this game is multi-player, co-op or single-player. The game can be marked as multi-player, co-op and single-player at the same time.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'quest' => 'The task that a player-controlled character, or group of characters may complete in order to gain a reward.', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'season' => 'A season in a media series.', + 'seasons' => 'A season in a media series.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'trailer' => 'The trailer of a movie or TV/radio series, season, episode, etc.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/VideoObject.php b/src/models/jsonld/VideoObject.php index 64c448c80..7f0475b53 100644 --- a/src/models/jsonld/VideoObject.php +++ b/src/models/jsonld/VideoObject.php @@ -23,405 +23,405 @@ */ class VideoObject extends MetaJsonLd implements VideoObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use VideoObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use VideoObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VideoObject'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VideoObject'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VideoObject'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VideoObject'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MediaObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MediaObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A video file.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A video file.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnail' => ['ImageObject'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'transcript' => ['Text'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'videoFrameSize' => ['Text'], - 'videoQuality' => ['Text'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnail' => ['ImageObject'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'transcript' => ['Text'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'videoFrameSize' => ['Text'], + 'videoQuality' => ['Text'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnail' => 'Thumbnail image for an image or video.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'videoFrameSize' => 'The frame size of the video.', - 'videoQuality' => 'The quality of the video.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnail' => 'Thumbnail image for an image or video.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'videoFrameSize' => 'The frame size of the video.', + 'videoQuality' => 'The quality of the video.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/VideoObjectSnapshot.php b/src/models/jsonld/VideoObjectSnapshot.php index fd815c89c..c368de4eb 100644 --- a/src/models/jsonld/VideoObjectSnapshot.php +++ b/src/models/jsonld/VideoObjectSnapshot.php @@ -28,406 +28,406 @@ */ class VideoObjectSnapshot extends MetaJsonLd implements VideoObjectSnapshotInterface, VideoObjectInterface, MediaObjectInterface, CreativeWorkInterface, ThingInterface { - use VideoObjectSnapshotTrait; - use VideoObjectTrait; - use MediaObjectTrait; - use CreativeWorkTrait; - use ThingTrait; + use VideoObjectSnapshotTrait; + use VideoObjectTrait; + use MediaObjectTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VideoObjectSnapshot'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VideoObjectSnapshot'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VideoObjectSnapshot'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VideoObjectSnapshot'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'VideoObject'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'VideoObject'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A specific and exact (byte-for-byte) version of a [[VideoObject]]. Two byte-for-byte identical files, for the purposes of this type, considered identical. If they have different embedded metadata the files will differ. Different external facts about the files, e.g. creator or dateCreated that aren\'t represented in their actual content, do not affect this notion of identity.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A specific and exact (byte-for-byte) version of a [[VideoObject]]. Two byte-for-byte identical files, for the purposes of this type, considered identical. If they have different embedded metadata the files will differ. Different external facts about the files, e.g. creator or dateCreated that aren\'t represented in their actual content, do not affect this notion of identity.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'actor' => ['Person'], - 'actors' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedArticle' => ['NewsArticle'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'bitrate' => ['Text'], - 'caption' => ['MediaObject', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contentSize' => ['Text'], - 'contentUrl' => ['URL'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'director' => ['Person'], - 'directors' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'duration' => ['Duration'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'embedUrl' => ['URL'], - 'embeddedTextCaption' => ['Text'], - 'encodesCreativeWork' => ['CreativeWork'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'endTime' => ['DateTime', 'Time'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'musicBy' => ['MusicGroup', 'Person'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'playerType' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'productionCompany' => ['Organization'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'regionsAllowed' => ['Place'], - 'releasedEvent' => ['PublicationEvent'], - 'requiresSubscription' => ['MediaSubscription', 'Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'sha256' => ['Text'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnail' => ['ImageObject'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'transcript' => ['Text'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'uploadDate' => ['Date'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'videoFrameSize' => ['Text'], - 'videoQuality' => ['Text'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'actor' => ['Person'], + 'actors' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedArticle' => ['NewsArticle'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'bitrate' => ['Text'], + 'caption' => ['MediaObject', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contentSize' => ['Text'], + 'contentUrl' => ['URL'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'director' => ['Person'], + 'directors' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'duration' => ['Duration'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'embedUrl' => ['URL'], + 'embeddedTextCaption' => ['Text'], + 'encodesCreativeWork' => ['CreativeWork'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'endTime' => ['DateTime', 'Time'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'ineligibleRegion' => ['Place', 'GeoShape', 'Text'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'musicBy' => ['MusicGroup', 'Person'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'playerType' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'productionCompany' => ['Organization'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'regionsAllowed' => ['Place'], + 'releasedEvent' => ['PublicationEvent'], + 'requiresSubscription' => ['MediaSubscription', 'Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'sha256' => ['Text'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnail' => ['ImageObject'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'transcript' => ['Text'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'uploadDate' => ['Date'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'videoFrameSize' => ['Text'], + 'videoQuality' => ['Text'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedArticle' => 'A NewsArticle associated with the Media Object.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'bitrate' => 'The bitrate of the media object.', - 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contentSize' => 'File size in (mega/kilo)bytes.', - 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', - 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', - 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'musicBy' => 'The composer of the soundtrack.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'playerType' => 'Player type required—for example, Flash or Silverlight.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnail' => 'Thumbnail image for an image or video.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'uploadDate' => 'Date when this media object was uploaded to this site.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'videoFrameSize' => 'The frame size of the video.', - 'videoQuality' => 'The quality of the video.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + 'actors' => 'An actor, e.g. in TV, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedArticle' => 'A NewsArticle associated with the Media Object.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'bitrate' => 'The bitrate of the media object.', + 'caption' => 'The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the [[encodingFormat]].', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contentSize' => 'File size in (mega/kilo)bytes.', + 'contentUrl' => 'Actual bytes of the media object, for example the image file or video file.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + 'directors' => 'A director of e.g. TV, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'embedUrl' => 'A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.', + 'embeddedTextCaption' => 'Represents textual captioning from a [[MediaObject]], e.g. text of a \'meme\'.', + 'encodesCreativeWork' => 'The CreativeWork encoded by this media object.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'ineligibleRegion' => 'The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed. See also [[eligibleRegion]]. ', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'musicBy' => 'The composer of the soundtrack.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'playerType' => 'Player type required—for example, Flash or Silverlight.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + 'productionCompany' => 'The production company or studio responsible for the item, e.g. series, video game, episode etc.', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'regionsAllowed' => 'The regions where the media is allowed. If not specified, then it\'s assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requiresSubscription' => 'Indicates if use of the media require a subscription (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had \'yes\', \'no\').', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'sha256' => 'The [SHA-2](https://en.wikipedia.org/wiki/SHA-2) SHA256 hash of the content of the item. For example, a zero-length input has value \'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\'', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnail' => 'Thumbnail image for an image or video.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'transcript' => 'If this MediaObject is an AudioObject or VideoObject, the transcript of that object.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'uploadDate' => 'Date when this media object was uploaded to this site.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'videoFrameSize' => 'The frame size of the video.', + 'videoQuality' => 'The quality of the video.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/ViewAction.php b/src/models/jsonld/ViewAction.php index 6a6f73cac..b5e934497 100644 --- a/src/models/jsonld/ViewAction.php +++ b/src/models/jsonld/ViewAction.php @@ -23,151 +23,151 @@ */ class ViewAction extends MetaJsonLd implements ViewActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use ViewActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ViewAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ViewAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of consuming static visual content.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ViewActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ViewAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ViewAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of consuming static visual content.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VinylFormat.php b/src/models/jsonld/VinylFormat.php index f0de6185f..58d22aa27 100644 --- a/src/models/jsonld/VinylFormat.php +++ b/src/models/jsonld/VinylFormat.php @@ -23,126 +23,126 @@ */ class VinylFormat extends MetaJsonLd implements VinylFormatInterface, MusicReleaseFormatTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use VinylFormatTrait; - use MusicReleaseFormatTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VinylFormat'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VinylFormat'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MusicReleaseFormatType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'VinylFormat.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VinylFormatTrait; + use MusicReleaseFormatTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VinylFormat'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VinylFormat'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MusicReleaseFormatType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'VinylFormat.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ViolenceConsideration.php b/src/models/jsonld/ViolenceConsideration.php index 9603830b0..a5d83e5f0 100644 --- a/src/models/jsonld/ViolenceConsideration.php +++ b/src/models/jsonld/ViolenceConsideration.php @@ -23,126 +23,126 @@ */ class ViolenceConsideration extends MetaJsonLd implements ViolenceConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ViolenceConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ViolenceConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ViolenceConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Item shows or promotes violence.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ViolenceConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ViolenceConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ViolenceConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Item shows or promotes violence.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VirtualLocation.php b/src/models/jsonld/VirtualLocation.php index c09f152f4..5e75cba7a 100644 --- a/src/models/jsonld/VirtualLocation.php +++ b/src/models/jsonld/VirtualLocation.php @@ -26,122 +26,122 @@ */ class VirtualLocation extends MetaJsonLd implements VirtualLocationInterface, IntangibleInterface, ThingInterface { - use VirtualLocationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VirtualLocation'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VirtualLocation'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Intangible'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An online or virtual location for attending events. For example, one may attend an online seminar or educational event. While a virtual location may be used as the location of an event, virtual locations should not be confused with physical locations in the real world.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VirtualLocationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VirtualLocation'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VirtualLocation'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Intangible'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An online or virtual location for attending events. For example, one may attend an online seminar or educational event. While a virtual location may be used as the location of an event, virtual locations should not be confused with physical locations in the real world.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Virus.php b/src/models/jsonld/Virus.php index b6e7c5f4f..6c947ab5e 100644 --- a/src/models/jsonld/Virus.php +++ b/src/models/jsonld/Virus.php @@ -23,127 +23,127 @@ */ class Virus extends MetaJsonLd implements VirusInterface, InfectiousAgentClassInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use VirusTrait; - use InfectiousAgentClassTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Virus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Virus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'InfectiousAgentClass'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Pathogenic virus that causes viral infection.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VirusTrait; + use InfectiousAgentClassTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Virus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Virus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'InfectiousAgentClass'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Pathogenic virus that causes viral infection.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VisualArtsEvent.php b/src/models/jsonld/VisualArtsEvent.php index 62c195304..607f62ffb 100644 --- a/src/models/jsonld/VisualArtsEvent.php +++ b/src/models/jsonld/VisualArtsEvent.php @@ -23,204 +23,204 @@ */ class VisualArtsEvent extends MetaJsonLd implements VisualArtsEventInterface, EventInterface, ThingInterface { - use VisualArtsEventTrait; - use EventTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VisualArtsEvent'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VisualArtsEvent'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Event'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Event type: Visual arts event.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'actor' => ['Person'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'attendee' => ['Organization', 'Person'], - 'attendees' => ['Organization', 'Person'], - 'audience' => ['Audience'], - 'composer' => ['Organization', 'Person'], - 'contributor' => ['Organization', 'Person'], - 'description' => ['Text'], - 'director' => ['Person'], - 'disambiguatingDescription' => ['Text'], - 'doorTime' => ['Time', 'DateTime'], - 'duration' => ['Duration'], - 'endDate' => ['DateTime', 'Date'], - 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], - 'eventSchedule' => ['Schedule'], - 'eventStatus' => ['EventStatusType'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'isAccessibleForFree' => ['Boolean'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumAttendeeCapacity' => ['Integer'], - 'maximumPhysicalAttendeeCapacity' => ['Integer'], - 'maximumVirtualAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'organizer' => ['Organization', 'Person'], - 'performer' => ['Person', 'Organization'], - 'performers' => ['Person', 'Organization'], - 'potentialAction' => ['Action'], - 'previousStartDate' => ['Date'], - 'recordedIn' => ['CreativeWork'], - 'remainingAttendeeCapacity' => ['Integer'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'sponsor' => ['Organization', 'Person'], - 'startDate' => ['DateTime', 'Date'], - 'subEvent' => ['Event'], - 'subEvents' => ['Event'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'superEvent' => ['Event'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'workFeatured' => ['CreativeWork'], - 'workPerformed' => ['CreativeWork'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'attendee' => 'A person or organization attending the event.', - 'attendees' => 'A person attending the event.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'description' => 'A description of the item.', - 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', - '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.', - 'doorTime' => 'The time admission will commence.', - 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', - 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', - 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - '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.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', - 'name' => 'The name of the item.', - '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. ', - 'organizer' => 'An organizer of an Event.', - 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', - 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', - 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', - 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', - 'review' => 'A review of the item.', - '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.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', - 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', - 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VisualArtsEventTrait; + use EventTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VisualArtsEvent'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VisualArtsEvent'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Event'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Event type: Visual arts event.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'actor' => ['Person'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'attendee' => ['Organization', 'Person'], + 'attendees' => ['Organization', 'Person'], + 'audience' => ['Audience'], + 'composer' => ['Organization', 'Person'], + 'contributor' => ['Organization', 'Person'], + 'description' => ['Text'], + 'director' => ['Person'], + 'disambiguatingDescription' => ['Text'], + 'doorTime' => ['Time', 'DateTime'], + 'duration' => ['Duration'], + 'endDate' => ['DateTime', 'Date'], + 'eventAttendanceMode' => ['EventAttendanceModeEnumeration'], + 'eventSchedule' => ['Schedule'], + 'eventStatus' => ['EventStatusType'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'isAccessibleForFree' => ['Boolean'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumAttendeeCapacity' => ['Integer'], + 'maximumPhysicalAttendeeCapacity' => ['Integer'], + 'maximumVirtualAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'organizer' => ['Organization', 'Person'], + 'performer' => ['Person', 'Organization'], + 'performers' => ['Person', 'Organization'], + 'potentialAction' => ['Action'], + 'previousStartDate' => ['Date'], + 'recordedIn' => ['CreativeWork'], + 'remainingAttendeeCapacity' => ['Integer'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'sponsor' => ['Organization', 'Person'], + 'startDate' => ['DateTime', 'Date'], + 'subEvent' => ['Event'], + 'subEvents' => ['Event'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'superEvent' => ['Event'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'workFeatured' => ['CreativeWork'], + 'workPerformed' => ['CreativeWork'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'actor' => 'An actor, e.g. in TV, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'attendee' => 'A person or organization attending the event.', + 'attendees' => 'A person attending the event.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'composer' => 'The person or organization who wrote a composition, or who is the composer of a work performed at some event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'description' => 'A description of the item.', + 'director' => 'A director of e.g. TV, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.', + '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.', + 'doorTime' => 'The time admission will commence.', + 'duration' => 'The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'eventAttendanceMode' => 'The eventAttendanceMode of an event indicates whether it occurs online, offline, or a mix.', + 'eventSchedule' => 'Associates an [[Event]] with a [[Schedule]]. There are circumstances where it is preferable to share a schedule for a series of repeating events rather than data on the individual events themselves. For example, a website or application might prefer to publish a schedule for a weekly gym class rather than provide data on every event. A schedule could be processed by applications to add forthcoming events to a calendar. An [[Event]] that is associated with a [[Schedule]] using this property should not have [[startDate]] or [[endDate]] properties. These are instead defined within the associated [[Schedule]], this avoids any ambiguity for clients using the data. The property might have repeated values to specify different schedules, e.g. for different months or seasons.', + 'eventStatus' => 'An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + '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.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'maximumPhysicalAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OfflineEventAttendanceMode]] (or the offline aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'maximumVirtualAttendeeCapacity' => 'The maximum physical attendee capacity of an [[Event]] whose [[eventAttendanceMode]] is [[OnlineEventAttendanceMode]] (or the online aspects, in the case of a [[MixedEventAttendanceMode]]). ', + 'name' => 'The name of the item.', + '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. ', + 'organizer' => 'An organizer of an Event.', + 'performer' => 'A performer at the event—for example, a presenter, musician, musical group or actor.', + 'performers' => 'The main performer or performers of the event—for example, a presenter, musician, or actor.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'previousStartDate' => 'Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.', + 'recordedIn' => 'The CreativeWork that captured all or part of this Event.', + 'remainingAttendeeCapacity' => 'The number of attendee places for an event that remain unallocated.', + 'review' => 'A review of the item.', + '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.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subEvent' => 'An Event that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.', + 'subEvents' => 'Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'superEvent' => 'An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'workFeatured' => 'A work featured in some event, e.g. exhibited in an ExhibitionEvent. Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).', + 'workPerformed' => 'A work performed in some event, for example a play performed in a TheaterEvent.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VisualArtwork.php b/src/models/jsonld/VisualArtwork.php index 0de0e8c55..e0584a8a8 100644 --- a/src/models/jsonld/VisualArtwork.php +++ b/src/models/jsonld/VisualArtwork.php @@ -23,372 +23,372 @@ */ class VisualArtwork extends MetaJsonLd implements VisualArtworkInterface, CreativeWorkInterface, ThingInterface { - use VisualArtworkTrait; - use CreativeWorkTrait; - use ThingTrait; + use VisualArtworkTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VisualArtwork'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VisualArtwork'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VisualArtwork'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VisualArtwork'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A work of art that is primarily visual in character.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A work of art that is primarily visual in character.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'artEdition' => ['Integer', 'Text'], - 'artMedium' => ['URL', 'Text'], - 'artform' => ['URL', 'Text'], - 'artist' => ['Person'], - 'artworkSurface' => ['URL', 'Text'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'colorist' => ['Person'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'depth' => ['QuantitativeValue', 'Distance'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'height' => ['QuantitativeValue', 'Distance'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'inker' => ['Person'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'letterer' => ['Person'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'penciler' => ['Person'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'surface' => ['Text', 'URL'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'width' => ['Distance', 'QuantitativeValue'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'artEdition' => ['Integer', 'Text'], + 'artMedium' => ['URL', 'Text'], + 'artform' => ['URL', 'Text'], + 'artist' => ['Person'], + 'artworkSurface' => ['URL', 'Text'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'colorist' => ['Person'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'depth' => ['QuantitativeValue', 'Distance'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'height' => ['QuantitativeValue', 'Distance'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'inker' => ['Person'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'letterer' => ['Person'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'penciler' => ['Person'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'surface' => ['Text', 'URL'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'width' => ['Distance', 'QuantitativeValue'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'artEdition' => 'The number of copies when multiple copies of a piece of artwork are produced - e.g. for a limited edition of 20 prints, \'artEdition\' refers to the total number of copies (in this example "20").', - 'artMedium' => 'The material used. (E.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)', - 'artform' => 'e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.', - 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', - 'artworkSurface' => 'The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'colorist' => 'The individual who adds color to inked drawings.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'depth' => 'The depth of the item.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - 'height' => 'The height of the item.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'penciler' => 'The individual who draws the primary narrative artwork.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'surface' => 'A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'width' => 'The width of the item.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'artEdition' => 'The number of copies when multiple copies of a piece of artwork are produced - e.g. for a limited edition of 20 prints, \'artEdition\' refers to the total number of copies (in this example "20").', + 'artMedium' => 'The material used. (E.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)', + 'artform' => 'e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.', + 'artist' => 'The primary artist for a work in a medium other than pencils or digital line art--for example, if the primary artwork is done in watercolors or digital paints.', + 'artworkSurface' => 'The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'colorist' => 'The individual who adds color to inked drawings.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'depth' => 'The depth of the item.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + 'height' => 'The height of the item.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'inker' => 'The individual who traces over the pencil drawings in ink after pencils are complete.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'letterer' => 'The individual who adds lettering, including speech balloons and sound effects, to artwork.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'penciler' => 'The individual who draws the primary narrative artwork.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'surface' => 'A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'width' => 'The width of the item.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/VitalSign.php b/src/models/jsonld/VitalSign.php index 61ea66298..e30db702d 100644 --- a/src/models/jsonld/VitalSign.php +++ b/src/models/jsonld/VitalSign.php @@ -24,177 +24,177 @@ */ class VitalSign extends MetaJsonLd implements VitalSignInterface, MedicalSignInterface, MedicalSignOrSymptomInterface, MedicalConditionInterface, MedicalEntityInterface, ThingInterface { - use VitalSignTrait; - use MedicalSignTrait; - use MedicalSignOrSymptomTrait; - use MedicalConditionTrait; - use MedicalEntityTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VitalSign'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VitalSign'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalSign'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Vital signs are measures of various physiological functions in order to assess the most basic body functions.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], - 'code' => ['MedicalCode'], - 'description' => ['Text'], - 'differentialDiagnosis' => ['DDxElement'], - 'disambiguatingDescription' => ['Text'], - 'drug' => ['Drug'], - 'epidemiology' => ['Text'], - 'expectedPrognosis' => ['Text'], - 'funding' => ['Grant'], - 'guideline' => ['MedicalGuideline'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'identifyingExam' => ['PhysicalExam'], - 'identifyingTest' => ['MedicalTest'], - 'image' => ['URL', 'ImageObject'], - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'medicineSystem' => ['MedicineSystem'], - 'name' => ['Text'], - 'naturalProgression' => ['Text'], - 'pathophysiology' => ['Text'], - 'possibleComplication' => ['Text'], - 'possibleTreatment' => ['MedicalTherapy'], - 'potentialAction' => ['Action'], - 'primaryPrevention' => ['MedicalTherapy'], - 'recognizingAuthority' => ['Organization'], - 'relevantSpecialty' => ['MedicalSpecialty'], - 'riskFactor' => ['MedicalRiskFactor'], - 'sameAs' => ['URL'], - 'secondaryPrevention' => ['MedicalTherapy'], - 'signOrSymptom' => ['MedicalSignOrSymptom'], - 'stage' => ['MedicalConditionStage'], - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], - 'study' => ['MedicalStudy'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'typicalTest' => ['MedicalTest'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', - 'description' => 'A description of the item.', - 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', - '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.', - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', - 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'guideline' => 'A medical guideline related to this entity.', - '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. ', - 'identifyingExam' => 'A physical examination that can identify this sign.', - 'identifyingTest' => 'A diagnostic test that can identify this sign.', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', - '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.', - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', - 'name' => 'The name of the item.', - 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', - 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', - 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', - 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', - '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.', - 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', - 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', - 'stage' => 'The stage of the condition, if applicable.', - 'status' => 'The status of the study (enumerated).', - 'study' => 'A medical study or trial related to this entity.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'typicalTest' => 'A medical test typically performed given this condition.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VitalSignTrait; + use MedicalSignTrait; + use MedicalSignOrSymptomTrait; + use MedicalConditionTrait; + use MedicalEntityTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VitalSign'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VitalSign'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalSign'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Vital signs are measures of various physiological functions in order to assess the most basic body functions.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], + 'code' => ['MedicalCode'], + 'description' => ['Text'], + 'differentialDiagnosis' => ['DDxElement'], + 'disambiguatingDescription' => ['Text'], + 'drug' => ['Drug'], + 'epidemiology' => ['Text'], + 'expectedPrognosis' => ['Text'], + 'funding' => ['Grant'], + 'guideline' => ['MedicalGuideline'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'identifyingExam' => ['PhysicalExam'], + 'identifyingTest' => ['MedicalTest'], + 'image' => ['URL', 'ImageObject'], + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'medicineSystem' => ['MedicineSystem'], + 'name' => ['Text'], + 'naturalProgression' => ['Text'], + 'pathophysiology' => ['Text'], + 'possibleComplication' => ['Text'], + 'possibleTreatment' => ['MedicalTherapy'], + 'potentialAction' => ['Action'], + 'primaryPrevention' => ['MedicalTherapy'], + 'recognizingAuthority' => ['Organization'], + 'relevantSpecialty' => ['MedicalSpecialty'], + 'riskFactor' => ['MedicalRiskFactor'], + 'sameAs' => ['URL'], + 'secondaryPrevention' => ['MedicalTherapy'], + 'signOrSymptom' => ['MedicalSignOrSymptom'], + 'stage' => ['MedicalConditionStage'], + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], + 'study' => ['MedicalStudy'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'typicalTest' => ['MedicalTest'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', + 'description' => 'A description of the item.', + 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', + '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.', + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', + 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'guideline' => 'A medical guideline related to this entity.', + '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. ', + 'identifyingExam' => 'A physical examination that can identify this sign.', + 'identifyingTest' => 'A diagnostic test that can identify this sign.', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', + '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.', + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', + 'name' => 'The name of the item.', + 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', + 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', + 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', + 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', + '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.', + 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', + 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', + 'stage' => 'The stage of the condition, if applicable.', + 'status' => 'The status of the study (enumerated).', + 'study' => 'A medical study or trial related to this entity.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'typicalTest' => 'A medical test typically performed given this condition.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Volcano.php b/src/models/jsonld/Volcano.php index e99c8c185..c18928462 100644 --- a/src/models/jsonld/Volcano.php +++ b/src/models/jsonld/Volcano.php @@ -23,213 +23,213 @@ */ class Volcano extends MetaJsonLd implements VolcanoInterface, LandformInterface, PlaceInterface, ThingInterface { - use VolcanoTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Volcano'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Volcano'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Landform'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A volcano, like Fujisan.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VolcanoTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Volcano'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Volcano'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Landform'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A volcano, like Fujisan.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/VoteAction.php b/src/models/jsonld/VoteAction.php index 9d37ff798..9667ce8d7 100644 --- a/src/models/jsonld/VoteAction.php +++ b/src/models/jsonld/VoteAction.php @@ -24,154 +24,154 @@ */ class VoteAction extends MetaJsonLd implements VoteActionInterface, ChooseActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use VoteActionTrait; - use ChooseActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'VoteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/VoteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ChooseAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of expressing a preference from a fixed/finite/structured set of choices/options.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionOption' => ['Text', 'Thing'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'candidate' => ['Person'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'option' => ['Text', 'Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionOption' => 'A sub property of object. The options subject to this action.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'candidate' => 'A sub property of object. The candidate subject of this action.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'option' => 'A sub property of object. The options subject to this action.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use VoteActionTrait; + use ChooseActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'VoteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/VoteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ChooseAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of expressing a preference from a fixed/finite/structured set of choices/options.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionOption' => ['Text', 'Thing'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'candidate' => ['Person'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'option' => ['Text', 'Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionOption' => 'A sub property of object. The options subject to this action.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'candidate' => 'A sub property of object. The candidate subject of this action.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'option' => 'A sub property of object. The options subject to this action.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WPAdBlock.php b/src/models/jsonld/WPAdBlock.php index cdfaf6b1f..ea71eaab2 100644 --- a/src/models/jsonld/WPAdBlock.php +++ b/src/models/jsonld/WPAdBlock.php @@ -23,351 +23,351 @@ */ class WPAdBlock extends MetaJsonLd implements WPAdBlockInterface, WebPageElementInterface, CreativeWorkInterface, ThingInterface { - use WPAdBlockTrait; - use WebPageElementTrait; - use CreativeWorkTrait; - use ThingTrait; + use WPAdBlockTrait; + use WebPageElementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WPAdBlock'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WPAdBlock'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WPAdBlock'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WPAdBlock'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An advertising section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An advertising section of the page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'xpath' => ['XPathType'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'xpath' => ['XPathType'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WPFooter.php b/src/models/jsonld/WPFooter.php index ef40930ea..bee83400a 100644 --- a/src/models/jsonld/WPFooter.php +++ b/src/models/jsonld/WPFooter.php @@ -23,351 +23,351 @@ */ class WPFooter extends MetaJsonLd implements WPFooterInterface, WebPageElementInterface, CreativeWorkInterface, ThingInterface { - use WPFooterTrait; - use WebPageElementTrait; - use CreativeWorkTrait; - use ThingTrait; + use WPFooterTrait; + use WebPageElementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WPFooter'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WPFooter'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WPFooter'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WPFooter'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The footer section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The footer section of the page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'xpath' => ['XPathType'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'xpath' => ['XPathType'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WPHeader.php b/src/models/jsonld/WPHeader.php index 7c41cc379..9faed355e 100644 --- a/src/models/jsonld/WPHeader.php +++ b/src/models/jsonld/WPHeader.php @@ -23,351 +23,351 @@ */ class WPHeader extends MetaJsonLd implements WPHeaderInterface, WebPageElementInterface, CreativeWorkInterface, ThingInterface { - use WPHeaderTrait; - use WebPageElementTrait; - use CreativeWorkTrait; - use ThingTrait; + use WPHeaderTrait; + use WebPageElementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WPHeader'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WPHeader'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WPHeader'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WPHeader'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The header section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The header section of the page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'xpath' => ['XPathType'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'xpath' => ['XPathType'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WPSideBar.php b/src/models/jsonld/WPSideBar.php index 6e6b5785a..1cc66bdff 100644 --- a/src/models/jsonld/WPSideBar.php +++ b/src/models/jsonld/WPSideBar.php @@ -23,351 +23,351 @@ */ class WPSideBar extends MetaJsonLd implements WPSideBarInterface, WebPageElementInterface, CreativeWorkInterface, ThingInterface { - use WPSideBarTrait; - use WebPageElementTrait; - use CreativeWorkTrait; - use ThingTrait; + use WPSideBarTrait; + use WebPageElementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WPSideBar'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WPSideBar'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WPSideBar'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WPSideBar'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WebPageElement'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WebPageElement'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A sidebar section of the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A sidebar section of the page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'xpath' => ['XPathType'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'xpath' => ['XPathType'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WantAction.php b/src/models/jsonld/WantAction.php index 6a0178289..b02b0194f 100644 --- a/src/models/jsonld/WantAction.php +++ b/src/models/jsonld/WantAction.php @@ -23,148 +23,148 @@ */ class WantAction extends MetaJsonLd implements WantActionInterface, ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface { - use WantActionTrait; - use ReactActionTrait; - use AssessActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WantAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WantAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ReactAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of expressing a desire about the object. An agent wants an object.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WantActionTrait; + use ReactActionTrait; + use AssessActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WantAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WantAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ReactAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of expressing a desire about the object. An agent wants an object.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WarrantyPromise.php b/src/models/jsonld/WarrantyPromise.php index ec9700088..dbbbe0db5 100644 --- a/src/models/jsonld/WarrantyPromise.php +++ b/src/models/jsonld/WarrantyPromise.php @@ -25,127 +25,127 @@ */ class WarrantyPromise extends MetaJsonLd implements WarrantyPromiseInterface, StructuredValueInterface, IntangibleInterface, ThingInterface { - use WarrantyPromiseTrait; - use StructuredValueTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WarrantyPromise'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WarrantyPromise'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'StructuredValue'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A structured value representing the duration and scope of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'durationOfWarranty' => ['QuantitativeValue'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'url' => ['URL'], - 'warrantyScope' => ['WarrantyScope'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'durationOfWarranty' => 'The duration of the warranty promise. Common unitCode values are ANN for year, MON for months, or DAY for days.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'url' => 'URL of the item.', - 'warrantyScope' => 'The scope of the warranty promise.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WarrantyPromiseTrait; + use StructuredValueTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WarrantyPromise'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WarrantyPromise'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'StructuredValue'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A structured value representing the duration and scope of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'durationOfWarranty' => ['QuantitativeValue'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'url' => ['URL'], + 'warrantyScope' => ['WarrantyScope'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'durationOfWarranty' => 'The duration of the warranty promise. Common unitCode values are ANN for year, MON for months, or DAY for days.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'url' => 'URL of the item.', + 'warrantyScope' => 'The scope of the warranty promise.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WarrantyScope.php b/src/models/jsonld/WarrantyScope.php index 6492e0f77..c286bc0e7 100644 --- a/src/models/jsonld/WarrantyScope.php +++ b/src/models/jsonld/WarrantyScope.php @@ -27,125 +27,125 @@ */ class WarrantyScope extends MetaJsonLd implements WarrantyScopeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WarrantyScopeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WarrantyScope'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WarrantyScope'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Enumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = "A range of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#Labor-BringIn\\n* http://purl.org/goodrelations/v1#PartsAndLabor-BringIn\\n* http://purl.org/goodrelations/v1#PartsAndLabor-PickUp\n "; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WarrantyScopeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WarrantyScope'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WarrantyScope'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Enumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = "A range of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.\\n\\nCommonly used values:\\n\\n* http://purl.org/goodrelations/v1#Labor-BringIn\\n* http://purl.org/goodrelations/v1#PartsAndLabor-BringIn\\n* http://purl.org/goodrelations/v1#PartsAndLabor-PickUp\n "; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WatchAction.php b/src/models/jsonld/WatchAction.php index 90df1eb22..837c08303 100644 --- a/src/models/jsonld/WatchAction.php +++ b/src/models/jsonld/WatchAction.php @@ -23,151 +23,151 @@ */ class WatchAction extends MetaJsonLd implements WatchActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use WatchActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WatchAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WatchAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'ConsumeAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of consuming dynamic/moving visual content.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WatchActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WatchAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WatchAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'ConsumeAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of consuming dynamic/moving visual content.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Waterfall.php b/src/models/jsonld/Waterfall.php index be9b1303c..922745027 100644 --- a/src/models/jsonld/Waterfall.php +++ b/src/models/jsonld/Waterfall.php @@ -23,214 +23,214 @@ */ class Waterfall extends MetaJsonLd implements WaterfallInterface, BodyOfWaterInterface, LandformInterface, PlaceInterface, ThingInterface { - use WaterfallTrait; - use BodyOfWaterTrait; - use LandformTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Waterfall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Waterfall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BodyOfWater'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A waterfall, like Niagara.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WaterfallTrait; + use BodyOfWaterTrait; + use LandformTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Waterfall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Waterfall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BodyOfWater'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A waterfall, like Niagara.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WeaponConsideration.php b/src/models/jsonld/WeaponConsideration.php index 3038b4177..81eae6d4a 100644 --- a/src/models/jsonld/WeaponConsideration.php +++ b/src/models/jsonld/WeaponConsideration.php @@ -24,126 +24,126 @@ */ class WeaponConsideration extends MetaJsonLd implements WeaponConsiderationInterface, AdultOrientedEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WeaponConsiderationTrait; - use AdultOrientedEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WeaponConsideration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WeaponConsideration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AdultOrientedEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The item is intended to induce bodily harm, for example guns, mace, combat knives, brass knuckles, nail or other bombs, and spears.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WeaponConsiderationTrait; + use AdultOrientedEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WeaponConsideration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WeaponConsideration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AdultOrientedEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The item is intended to induce bodily harm, for example guns, mace, combat knives, brass knuckles, nail or other bombs, and spears.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearAction.php b/src/models/jsonld/WearAction.php index 3e726cc35..5825c088c 100644 --- a/src/models/jsonld/WearAction.php +++ b/src/models/jsonld/WearAction.php @@ -23,152 +23,152 @@ */ class WearAction extends MetaJsonLd implements WearActionInterface, UseActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface { - use WearActionTrait; - use UseActionTrait; - use ConsumeActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'UseAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of dressing oneself in clothing.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'expectsAcceptanceOf' => ['Offer'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearActionTrait; + use UseActionTrait; + use ConsumeActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'UseAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of dressing oneself in clothing.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'expectsAcceptanceOf' => ['Offer'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementBack.php b/src/models/jsonld/WearableMeasurementBack.php index c74bc58bc..6b6862c07 100644 --- a/src/models/jsonld/WearableMeasurementBack.php +++ b/src/models/jsonld/WearableMeasurementBack.php @@ -23,127 +23,127 @@ */ class WearableMeasurementBack extends MetaJsonLd implements WearableMeasurementBackInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementBackTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementBack'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementBack'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the back section, for example of a jacket'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementBackTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementBack'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementBack'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the back section, for example of a jacket'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementChestOrBust.php b/src/models/jsonld/WearableMeasurementChestOrBust.php index f9211d33d..dc0019acb 100644 --- a/src/models/jsonld/WearableMeasurementChestOrBust.php +++ b/src/models/jsonld/WearableMeasurementChestOrBust.php @@ -23,127 +23,127 @@ */ class WearableMeasurementChestOrBust extends MetaJsonLd implements WearableMeasurementChestOrBustInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementChestOrBustTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementChestOrBust'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementChestOrBust'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the chest/bust section, for example of a suit'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementChestOrBustTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementChestOrBust'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementChestOrBust'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the chest/bust section, for example of a suit'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementCollar.php b/src/models/jsonld/WearableMeasurementCollar.php index 53b1127d1..0a131e6a4 100644 --- a/src/models/jsonld/WearableMeasurementCollar.php +++ b/src/models/jsonld/WearableMeasurementCollar.php @@ -23,127 +23,127 @@ */ class WearableMeasurementCollar extends MetaJsonLd implements WearableMeasurementCollarInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementCollarTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementCollar'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementCollar'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the collar, for example of a shirt'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementCollarTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementCollar'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementCollar'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the collar, for example of a shirt'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementCup.php b/src/models/jsonld/WearableMeasurementCup.php index 3411408c1..369b731aa 100644 --- a/src/models/jsonld/WearableMeasurementCup.php +++ b/src/models/jsonld/WearableMeasurementCup.php @@ -23,127 +23,127 @@ */ class WearableMeasurementCup extends MetaJsonLd implements WearableMeasurementCupInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementCupTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementCup'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementCup'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the cup, for example of a bra'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementCupTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementCup'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementCup'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the cup, for example of a bra'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementHeight.php b/src/models/jsonld/WearableMeasurementHeight.php index c93698520..767656d86 100644 --- a/src/models/jsonld/WearableMeasurementHeight.php +++ b/src/models/jsonld/WearableMeasurementHeight.php @@ -23,127 +23,127 @@ */ class WearableMeasurementHeight extends MetaJsonLd implements WearableMeasurementHeightInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementHeightTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementHeight'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementHeight'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the height, for example the heel height of a shoe'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementHeightTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementHeight'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementHeight'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the height, for example the heel height of a shoe'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementHips.php b/src/models/jsonld/WearableMeasurementHips.php index 914e7b398..b00a20906 100644 --- a/src/models/jsonld/WearableMeasurementHips.php +++ b/src/models/jsonld/WearableMeasurementHips.php @@ -23,127 +23,127 @@ */ class WearableMeasurementHips extends MetaJsonLd implements WearableMeasurementHipsInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementHipsTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementHips'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementHips'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the hip section, for example of a skirt'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementHipsTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementHips'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementHips'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the hip section, for example of a skirt'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementInseam.php b/src/models/jsonld/WearableMeasurementInseam.php index 5a4f224d1..5cb1202e1 100644 --- a/src/models/jsonld/WearableMeasurementInseam.php +++ b/src/models/jsonld/WearableMeasurementInseam.php @@ -23,127 +23,127 @@ */ class WearableMeasurementInseam extends MetaJsonLd implements WearableMeasurementInseamInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementInseamTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementInseam'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementInseam'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the inseam, for example of pants'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementInseamTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementInseam'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementInseam'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the inseam, for example of pants'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementLength.php b/src/models/jsonld/WearableMeasurementLength.php index ee501709f..38e905dfe 100644 --- a/src/models/jsonld/WearableMeasurementLength.php +++ b/src/models/jsonld/WearableMeasurementLength.php @@ -23,127 +23,127 @@ */ class WearableMeasurementLength extends MetaJsonLd implements WearableMeasurementLengthInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementLengthTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementLength'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementLength'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Represents the length, for example of a dress'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementLengthTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementLength'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementLength'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Represents the length, for example of a dress'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementOutsideLeg.php b/src/models/jsonld/WearableMeasurementOutsideLeg.php index 276927122..54bd987e2 100644 --- a/src/models/jsonld/WearableMeasurementOutsideLeg.php +++ b/src/models/jsonld/WearableMeasurementOutsideLeg.php @@ -23,127 +23,127 @@ */ class WearableMeasurementOutsideLeg extends MetaJsonLd implements WearableMeasurementOutsideLegInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementOutsideLegTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementOutsideLeg'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementOutsideLeg'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the outside leg, for example of pants'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementOutsideLegTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementOutsideLeg'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementOutsideLeg'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the outside leg, for example of pants'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementSleeve.php b/src/models/jsonld/WearableMeasurementSleeve.php index 5e0499e13..6c368fa54 100644 --- a/src/models/jsonld/WearableMeasurementSleeve.php +++ b/src/models/jsonld/WearableMeasurementSleeve.php @@ -23,127 +23,127 @@ */ class WearableMeasurementSleeve extends MetaJsonLd implements WearableMeasurementSleeveInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementSleeveTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementSleeve'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementSleeve'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the sleeve length, for example of a shirt'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementSleeveTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementSleeve'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementSleeve'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the sleeve length, for example of a shirt'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementTypeEnumeration.php b/src/models/jsonld/WearableMeasurementTypeEnumeration.php index 8105d1910..a5cbdd0b3 100644 --- a/src/models/jsonld/WearableMeasurementTypeEnumeration.php +++ b/src/models/jsonld/WearableMeasurementTypeEnumeration.php @@ -23,126 +23,126 @@ */ class WearableMeasurementTypeEnumeration extends MetaJsonLd implements WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates common types of measurement for wearables products.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates common types of measurement for wearables products.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementWaist.php b/src/models/jsonld/WearableMeasurementWaist.php index b3805b3f6..c63fd8ae4 100644 --- a/src/models/jsonld/WearableMeasurementWaist.php +++ b/src/models/jsonld/WearableMeasurementWaist.php @@ -23,127 +23,127 @@ */ class WearableMeasurementWaist extends MetaJsonLd implements WearableMeasurementWaistInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementWaistTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementWaist'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementWaist'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the waist section, for example of pants'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementWaistTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementWaist'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementWaist'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the waist section, for example of pants'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableMeasurementWidth.php b/src/models/jsonld/WearableMeasurementWidth.php index 8dbb2fc49..cee494a9b 100644 --- a/src/models/jsonld/WearableMeasurementWidth.php +++ b/src/models/jsonld/WearableMeasurementWidth.php @@ -23,127 +23,127 @@ */ class WearableMeasurementWidth extends MetaJsonLd implements WearableMeasurementWidthInterface, WearableMeasurementTypeEnumerationInterface, MeasurementTypeEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableMeasurementWidthTrait; - use WearableMeasurementTypeEnumerationTrait; - use MeasurementTypeEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableMeasurementWidth'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableMeasurementWidth'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Measurement of the width, for example of shoes'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableMeasurementWidthTrait; + use WearableMeasurementTypeEnumerationTrait; + use MeasurementTypeEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableMeasurementWidth'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableMeasurementWidth'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableMeasurementTypeEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Measurement of the width, for example of shoes'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupBig.php b/src/models/jsonld/WearableSizeGroupBig.php index 5a1ca7834..281d0526a 100644 --- a/src/models/jsonld/WearableSizeGroupBig.php +++ b/src/models/jsonld/WearableSizeGroupBig.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupBig extends MetaJsonLd implements WearableSizeGroupBigInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupBigTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupBig'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupBig'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Big" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupBigTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupBig'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupBig'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Big" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupBoys.php b/src/models/jsonld/WearableSizeGroupBoys.php index ab78c4803..0bc4c9d1f 100644 --- a/src/models/jsonld/WearableSizeGroupBoys.php +++ b/src/models/jsonld/WearableSizeGroupBoys.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupBoys extends MetaJsonLd implements WearableSizeGroupBoysInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupBoysTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupBoys'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupBoys'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Boys" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupBoysTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupBoys'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupBoys'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Boys" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupEnumeration.php b/src/models/jsonld/WearableSizeGroupEnumeration.php index 25e073cdb..1a20d1fe9 100644 --- a/src/models/jsonld/WearableSizeGroupEnumeration.php +++ b/src/models/jsonld/WearableSizeGroupEnumeration.php @@ -24,126 +24,126 @@ */ class WearableSizeGroupEnumeration extends MetaJsonLd implements WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates common size groups (also known as "size types") for wearable products.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates common size groups (also known as "size types") for wearable products.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupExtraShort.php b/src/models/jsonld/WearableSizeGroupExtraShort.php index 1f7498d88..4d923b29c 100644 --- a/src/models/jsonld/WearableSizeGroupExtraShort.php +++ b/src/models/jsonld/WearableSizeGroupExtraShort.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupExtraShort extends MetaJsonLd implements WearableSizeGroupExtraShortInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupExtraShortTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupExtraShort'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraShort'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Extra Short" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupExtraShortTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupExtraShort'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraShort'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Extra Short" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupExtraTall.php b/src/models/jsonld/WearableSizeGroupExtraTall.php index e1de8d027..02c200310 100644 --- a/src/models/jsonld/WearableSizeGroupExtraTall.php +++ b/src/models/jsonld/WearableSizeGroupExtraTall.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupExtraTall extends MetaJsonLd implements WearableSizeGroupExtraTallInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupExtraTallTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupExtraTall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraTall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Extra Tall" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupExtraTallTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupExtraTall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupExtraTall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Extra Tall" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupGirls.php b/src/models/jsonld/WearableSizeGroupGirls.php index cdfda21bc..dcdc84493 100644 --- a/src/models/jsonld/WearableSizeGroupGirls.php +++ b/src/models/jsonld/WearableSizeGroupGirls.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupGirls extends MetaJsonLd implements WearableSizeGroupGirlsInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupGirlsTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupGirls'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupGirls'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Girls" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupGirlsTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupGirls'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupGirls'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Girls" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupHusky.php b/src/models/jsonld/WearableSizeGroupHusky.php index bbb1b3f89..5aeb1adcc 100644 --- a/src/models/jsonld/WearableSizeGroupHusky.php +++ b/src/models/jsonld/WearableSizeGroupHusky.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupHusky extends MetaJsonLd implements WearableSizeGroupHuskyInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupHuskyTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupHusky'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupHusky'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Husky" (or "Stocky") for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupHuskyTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupHusky'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupHusky'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Husky" (or "Stocky") for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupInfants.php b/src/models/jsonld/WearableSizeGroupInfants.php index c57a4f25e..2e894721a 100644 --- a/src/models/jsonld/WearableSizeGroupInfants.php +++ b/src/models/jsonld/WearableSizeGroupInfants.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupInfants extends MetaJsonLd implements WearableSizeGroupInfantsInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupInfantsTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupInfants'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupInfants'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Infants" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupInfantsTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupInfants'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupInfants'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Infants" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupJuniors.php b/src/models/jsonld/WearableSizeGroupJuniors.php index 33053f586..528ecc987 100644 --- a/src/models/jsonld/WearableSizeGroupJuniors.php +++ b/src/models/jsonld/WearableSizeGroupJuniors.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupJuniors extends MetaJsonLd implements WearableSizeGroupJuniorsInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupJuniorsTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupJuniors'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupJuniors'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Juniors" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupJuniorsTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupJuniors'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupJuniors'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Juniors" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupMaternity.php b/src/models/jsonld/WearableSizeGroupMaternity.php index 8883fb3aa..8430e876e 100644 --- a/src/models/jsonld/WearableSizeGroupMaternity.php +++ b/src/models/jsonld/WearableSizeGroupMaternity.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupMaternity extends MetaJsonLd implements WearableSizeGroupMaternityInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupMaternityTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupMaternity'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupMaternity'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Maternity" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupMaternityTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupMaternity'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupMaternity'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Maternity" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupMens.php b/src/models/jsonld/WearableSizeGroupMens.php index 6e425250c..e3d0e54a9 100644 --- a/src/models/jsonld/WearableSizeGroupMens.php +++ b/src/models/jsonld/WearableSizeGroupMens.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupMens extends MetaJsonLd implements WearableSizeGroupMensInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupMensTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupMens'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupMens'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Mens" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupMensTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupMens'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupMens'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Mens" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupMisses.php b/src/models/jsonld/WearableSizeGroupMisses.php index d79a99d6f..e311f1a82 100644 --- a/src/models/jsonld/WearableSizeGroupMisses.php +++ b/src/models/jsonld/WearableSizeGroupMisses.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupMisses extends MetaJsonLd implements WearableSizeGroupMissesInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupMissesTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupMisses'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupMisses'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Misses" (also known as "Missy") for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupMissesTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupMisses'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupMisses'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Misses" (also known as "Missy") for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupPetite.php b/src/models/jsonld/WearableSizeGroupPetite.php index 5900a3592..2568b053c 100644 --- a/src/models/jsonld/WearableSizeGroupPetite.php +++ b/src/models/jsonld/WearableSizeGroupPetite.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupPetite extends MetaJsonLd implements WearableSizeGroupPetiteInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupPetiteTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupPetite'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupPetite'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Petite" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupPetiteTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupPetite'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupPetite'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Petite" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupPlus.php b/src/models/jsonld/WearableSizeGroupPlus.php index 9e6043f2f..05cbb197e 100644 --- a/src/models/jsonld/WearableSizeGroupPlus.php +++ b/src/models/jsonld/WearableSizeGroupPlus.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupPlus extends MetaJsonLd implements WearableSizeGroupPlusInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupPlusTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupPlus'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupPlus'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Plus" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupPlusTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupPlus'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupPlus'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Plus" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupRegular.php b/src/models/jsonld/WearableSizeGroupRegular.php index 2eadb2ac5..adc4523aa 100644 --- a/src/models/jsonld/WearableSizeGroupRegular.php +++ b/src/models/jsonld/WearableSizeGroupRegular.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupRegular extends MetaJsonLd implements WearableSizeGroupRegularInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupRegularTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupRegular'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupRegular'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Regular" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupRegularTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupRegular'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupRegular'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Regular" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupShort.php b/src/models/jsonld/WearableSizeGroupShort.php index cd31ed779..03928ebfb 100644 --- a/src/models/jsonld/WearableSizeGroupShort.php +++ b/src/models/jsonld/WearableSizeGroupShort.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupShort extends MetaJsonLd implements WearableSizeGroupShortInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupShortTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupShort'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupShort'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Short" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupShortTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupShort'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupShort'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Short" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupTall.php b/src/models/jsonld/WearableSizeGroupTall.php index b8726d656..e210a2590 100644 --- a/src/models/jsonld/WearableSizeGroupTall.php +++ b/src/models/jsonld/WearableSizeGroupTall.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupTall extends MetaJsonLd implements WearableSizeGroupTallInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupTallTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupTall'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupTall'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Tall" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupTallTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupTall'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupTall'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Tall" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeGroupWomens.php b/src/models/jsonld/WearableSizeGroupWomens.php index 8aa7875a3..c93ccd794 100644 --- a/src/models/jsonld/WearableSizeGroupWomens.php +++ b/src/models/jsonld/WearableSizeGroupWomens.php @@ -23,127 +23,127 @@ */ class WearableSizeGroupWomens extends MetaJsonLd implements WearableSizeGroupWomensInterface, WearableSizeGroupEnumerationInterface, SizeGroupEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeGroupWomensTrait; - use WearableSizeGroupEnumerationTrait; - use SizeGroupEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeGroupWomens'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupWomens'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Size group "Womens" for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeGroupWomensTrait; + use WearableSizeGroupEnumerationTrait; + use SizeGroupEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeGroupWomens'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeGroupWomens'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeGroupEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Size group "Womens" for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemAU.php b/src/models/jsonld/WearableSizeSystemAU.php index b296e7c50..c94a46653 100644 --- a/src/models/jsonld/WearableSizeSystemAU.php +++ b/src/models/jsonld/WearableSizeSystemAU.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemAU extends MetaJsonLd implements WearableSizeSystemAUInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemAUTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemAU'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemAU'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Australian size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemAUTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemAU'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemAU'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Australian size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemBR.php b/src/models/jsonld/WearableSizeSystemBR.php index af7ff309b..1d15e4f5b 100644 --- a/src/models/jsonld/WearableSizeSystemBR.php +++ b/src/models/jsonld/WearableSizeSystemBR.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemBR extends MetaJsonLd implements WearableSizeSystemBRInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemBRTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemBR'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemBR'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Brazilian size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemBRTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemBR'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemBR'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Brazilian size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemCN.php b/src/models/jsonld/WearableSizeSystemCN.php index e71bf8bf6..92579fb86 100644 --- a/src/models/jsonld/WearableSizeSystemCN.php +++ b/src/models/jsonld/WearableSizeSystemCN.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemCN extends MetaJsonLd implements WearableSizeSystemCNInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemCNTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemCN'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemCN'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Chinese size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemCNTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemCN'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemCN'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Chinese size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemContinental.php b/src/models/jsonld/WearableSizeSystemContinental.php index 5f95f25a0..4b7ab66d7 100644 --- a/src/models/jsonld/WearableSizeSystemContinental.php +++ b/src/models/jsonld/WearableSizeSystemContinental.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemContinental extends MetaJsonLd implements WearableSizeSystemContinentalInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemContinentalTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemContinental'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemContinental'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Continental size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemContinentalTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemContinental'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemContinental'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Continental size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemDE.php b/src/models/jsonld/WearableSizeSystemDE.php index 946e17017..f48f8fff6 100644 --- a/src/models/jsonld/WearableSizeSystemDE.php +++ b/src/models/jsonld/WearableSizeSystemDE.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemDE extends MetaJsonLd implements WearableSizeSystemDEInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemDETrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemDE'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemDE'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'German size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemDETrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemDE'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemDE'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'German size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemEN13402.php b/src/models/jsonld/WearableSizeSystemEN13402.php index be1cde70f..80a3a0b63 100644 --- a/src/models/jsonld/WearableSizeSystemEN13402.php +++ b/src/models/jsonld/WearableSizeSystemEN13402.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemEN13402 extends MetaJsonLd implements WearableSizeSystemEN13402Interface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemEN13402Trait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemEN13402'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemEN13402'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'EN 13402 (joint European standard for size labelling of clothes).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemEN13402Trait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemEN13402'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemEN13402'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'EN 13402 (joint European standard for size labelling of clothes).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemEnumeration.php b/src/models/jsonld/WearableSizeSystemEnumeration.php index f74a935cd..20b40d5b0 100644 --- a/src/models/jsonld/WearableSizeSystemEnumeration.php +++ b/src/models/jsonld/WearableSizeSystemEnumeration.php @@ -23,126 +23,126 @@ */ class WearableSizeSystemEnumeration extends MetaJsonLd implements WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Enumerates common size systems specific for wearable products'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Enumerates common size systems specific for wearable products'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemEurope.php b/src/models/jsonld/WearableSizeSystemEurope.php index 365b53e2a..d516417d8 100644 --- a/src/models/jsonld/WearableSizeSystemEurope.php +++ b/src/models/jsonld/WearableSizeSystemEurope.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemEurope extends MetaJsonLd implements WearableSizeSystemEuropeInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemEuropeTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemEurope'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemEurope'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'European size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemEuropeTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemEurope'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemEurope'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'European size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemFR.php b/src/models/jsonld/WearableSizeSystemFR.php index 6a98812d2..4f08582c0 100644 --- a/src/models/jsonld/WearableSizeSystemFR.php +++ b/src/models/jsonld/WearableSizeSystemFR.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemFR extends MetaJsonLd implements WearableSizeSystemFRInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemFRTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemFR'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemFR'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'French size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemFRTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemFR'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemFR'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'French size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemGS1.php b/src/models/jsonld/WearableSizeSystemGS1.php index 34065d43d..f9a3a4d39 100644 --- a/src/models/jsonld/WearableSizeSystemGS1.php +++ b/src/models/jsonld/WearableSizeSystemGS1.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemGS1 extends MetaJsonLd implements WearableSizeSystemGS1Interface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemGS1Trait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemGS1'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemGS1'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'GS1 (formerly NRF) size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemGS1Trait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemGS1'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemGS1'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'GS1 (formerly NRF) size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemIT.php b/src/models/jsonld/WearableSizeSystemIT.php index 9f56cac14..955951c2e 100644 --- a/src/models/jsonld/WearableSizeSystemIT.php +++ b/src/models/jsonld/WearableSizeSystemIT.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemIT extends MetaJsonLd implements WearableSizeSystemITInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemITTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemIT'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemIT'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Italian size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemITTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemIT'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemIT'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Italian size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemJP.php b/src/models/jsonld/WearableSizeSystemJP.php index df8f65007..561a0a00b 100644 --- a/src/models/jsonld/WearableSizeSystemJP.php +++ b/src/models/jsonld/WearableSizeSystemJP.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemJP extends MetaJsonLd implements WearableSizeSystemJPInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemJPTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemJP'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemJP'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Japanese size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemJPTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemJP'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemJP'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Japanese size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemMX.php b/src/models/jsonld/WearableSizeSystemMX.php index bdaab97f9..9652fc691 100644 --- a/src/models/jsonld/WearableSizeSystemMX.php +++ b/src/models/jsonld/WearableSizeSystemMX.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemMX extends MetaJsonLd implements WearableSizeSystemMXInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemMXTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemMX'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemMX'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Mexican size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemMXTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemMX'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemMX'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Mexican size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemUK.php b/src/models/jsonld/WearableSizeSystemUK.php index cf7b9d5fb..9b5610d60 100644 --- a/src/models/jsonld/WearableSizeSystemUK.php +++ b/src/models/jsonld/WearableSizeSystemUK.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemUK extends MetaJsonLd implements WearableSizeSystemUKInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemUKTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemUK'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemUK'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'United Kingdom size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemUKTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemUK'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemUK'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'United Kingdom size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WearableSizeSystemUS.php b/src/models/jsonld/WearableSizeSystemUS.php index d76779aae..d832eccff 100644 --- a/src/models/jsonld/WearableSizeSystemUS.php +++ b/src/models/jsonld/WearableSizeSystemUS.php @@ -23,127 +23,127 @@ */ class WearableSizeSystemUS extends MetaJsonLd implements WearableSizeSystemUSInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WearableSizeSystemUSTrait; - use WearableSizeSystemEnumerationTrait; - use SizeSystemEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WearableSizeSystemUS'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemUS'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'United States size system for wearables.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WearableSizeSystemUSTrait; + use WearableSizeSystemEnumerationTrait; + use SizeSystemEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WearableSizeSystemUS'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemUS'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'United States size system for wearables.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WebAPI.php b/src/models/jsonld/WebAPI.php index c569a1ff9..1dfbb8354 100644 --- a/src/models/jsonld/WebAPI.php +++ b/src/models/jsonld/WebAPI.php @@ -24,173 +24,173 @@ */ class WebAPI extends MetaJsonLd implements WebAPIInterface, ServiceInterface, IntangibleInterface, ThingInterface { - use WebAPITrait; - use ServiceTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WebAPI'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WebAPI'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Service'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'An application programming interface accessible over Web/Internet technologies.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'audience' => ['Audience'], - 'availableChannel' => ['ServiceChannel'], - 'award' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'broker' => ['Person', 'Organization'], - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'documentation' => ['URL', 'CreativeWork'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hoursAvailable' => ['OpeningHoursSpecification'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isRelatedTo' => ['Product', 'Service'], - 'isSimilarTo' => ['Product', 'Service'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'produces' => ['Thing'], - 'provider' => ['Organization', 'Person'], - 'providerMobility' => ['Text'], - 'review' => ['Review'], - 'sameAs' => ['URL'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'serviceAudience' => ['Audience'], - 'serviceOutput' => ['Thing'], - 'serviceType' => ['Text', 'GovernmentBenefitsType'], - 'slogan' => ['Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termsOfService' => ['URL', 'Text'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', - 'award' => 'An award won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - '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.', - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', - 'description' => 'A description of the item.', - '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.', - 'documentation' => 'Further documentation describing the Web API in more detail.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hoursAvailable' => 'The hours during which this service or contact is available.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', - 'logo' => 'An associated logo.', - '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.', - 'name' => 'The name of the item.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - '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.', - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', - 'review' => 'A review of the item.', - '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.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'serviceAudience' => 'The audience eligible for this service.', - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', - 'slogan' => 'A slogan or motto associated with the item.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termsOfService' => 'Human-readable terms of service documentation.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WebAPITrait; + use ServiceTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WebAPI'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WebAPI'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Service'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'An application programming interface accessible over Web/Internet technologies.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'audience' => ['Audience'], + 'availableChannel' => ['ServiceChannel'], + 'award' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'broker' => ['Person', 'Organization'], + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'documentation' => ['URL', 'CreativeWork'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hoursAvailable' => ['OpeningHoursSpecification'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isRelatedTo' => ['Product', 'Service'], + 'isSimilarTo' => ['Product', 'Service'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'produces' => ['Thing'], + 'provider' => ['Organization', 'Person'], + 'providerMobility' => ['Text'], + 'review' => ['Review'], + 'sameAs' => ['URL'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'serviceAudience' => ['Audience'], + 'serviceOutput' => ['Thing'], + 'serviceType' => ['Text', 'GovernmentBenefitsType'], + 'slogan' => ['Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termsOfService' => ['URL', 'Text'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', + 'award' => 'An award won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + '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.', + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', + 'description' => 'A description of the item.', + '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.', + 'documentation' => 'Further documentation describing the Web API in more detail.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hoursAvailable' => 'The hours during which this service or contact is available.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', + 'logo' => 'An associated logo.', + '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.', + 'name' => 'The name of the item.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + '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.', + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', + 'review' => 'A review of the item.', + '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.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'serviceAudience' => 'The audience eligible for this service.', + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', + 'slogan' => 'A slogan or motto associated with the item.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termsOfService' => 'Human-readable terms of service documentation.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WebApplication.php b/src/models/jsonld/WebApplication.php index 6927002f8..3b6f6ebf3 100644 --- a/src/models/jsonld/WebApplication.php +++ b/src/models/jsonld/WebApplication.php @@ -23,397 +23,397 @@ */ class WebApplication extends MetaJsonLd implements WebApplicationInterface, SoftwareApplicationInterface, CreativeWorkInterface, ThingInterface { - use WebApplicationTrait; - use SoftwareApplicationTrait; - use CreativeWorkTrait; - use ThingTrait; + use WebApplicationTrait; + use SoftwareApplicationTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WebApplication'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WebApplication'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WebApplication'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WebApplication'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'SoftwareApplication'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'SoftwareApplication'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Web applications.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Web applications.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'applicationCategory' => ['URL', 'Text'], - 'applicationSubCategory' => ['URL', 'Text'], - 'applicationSuite' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'availableOnDevice' => ['Text'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'browserRequirements' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countriesNotSupported' => ['Text'], - 'countriesSupported' => ['Text'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'device' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'downloadUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'featureList' => ['URL', 'Text'], - 'fileFormat' => ['Text', 'URL'], - 'fileSize' => ['Text'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'installUrl' => ['URL'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'memoryRequirements' => ['Text', 'URL'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'operatingSystem' => ['Text'], - 'pattern' => ['DefinedTerm', 'Text'], - 'permissions' => ['Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'processorRequirements' => ['Text'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releaseNotes' => ['Text', 'URL'], - 'releasedEvent' => ['PublicationEvent'], - 'requirements' => ['Text', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'screenshot' => ['URL', 'ImageObject'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'softwareAddOn' => ['SoftwareApplication'], - 'softwareHelp' => ['CreativeWork'], - 'softwareRequirements' => ['Text', 'URL'], - 'softwareVersion' => ['Text'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'storageRequirements' => ['URL', 'Text'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supportingData' => ['DataFeed'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'applicationCategory' => ['URL', 'Text'], + 'applicationSubCategory' => ['URL', 'Text'], + 'applicationSuite' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'availableOnDevice' => ['Text'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'browserRequirements' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countriesNotSupported' => ['Text'], + 'countriesSupported' => ['Text'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'device' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'downloadUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'featureList' => ['URL', 'Text'], + 'fileFormat' => ['Text', 'URL'], + 'fileSize' => ['Text'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'installUrl' => ['URL'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'memoryRequirements' => ['Text', 'URL'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'operatingSystem' => ['Text'], + 'pattern' => ['DefinedTerm', 'Text'], + 'permissions' => ['Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'processorRequirements' => ['Text'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releaseNotes' => ['Text', 'URL'], + 'releasedEvent' => ['PublicationEvent'], + 'requirements' => ['Text', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'screenshot' => ['URL', 'ImageObject'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'softwareAddOn' => ['SoftwareApplication'], + 'softwareHelp' => ['CreativeWork'], + 'softwareRequirements' => ['Text', 'URL'], + 'softwareVersion' => ['Text'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'storageRequirements' => ['URL', 'Text'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supportingData' => ['DataFeed'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', - 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', - 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'browserRequirements' => 'Specifies browser requirements in human-readable text. For example, \'requires HTML5 support\'.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'memoryRequirements' => 'Minimum memory requirements.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releaseNotes' => 'Description of what changed in this version.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'screenshot' => 'A link to a screenshot image of the app.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'softwareAddOn' => 'Additional content for a software application.', - 'softwareHelp' => 'Software application help.', - 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', - 'softwareVersion' => 'Version of the software instance.', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'storageRequirements' => 'Storage requirements (free space required).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supportingData' => 'Supporting data for a SoftwareApplication.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'applicationCategory' => 'Type of software application, e.g. \'Game, Multimedia\'.', + 'applicationSubCategory' => 'Subcategory of the application, e.g. \'Arcade Game\'.', + 'applicationSuite' => 'The name of the application suite to which the application belongs (e.g. Excel belongs to Office).', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'availableOnDevice' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'browserRequirements' => 'Specifies browser requirements in human-readable text. For example, \'requires HTML5 support\'.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countriesNotSupported' => 'Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countriesSupported' => 'Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + 'device' => 'Device required to run the application. Used in cases where a specific make/model is required to run the application.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'downloadUrl' => 'If the file can be downloaded, URL to download the binary.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'featureList' => 'Features or modules provided by this application (and possibly required by other applications).', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'fileSize' => 'Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'installUrl' => 'URL at which the app may be installed, if different from the URL of the item.', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'memoryRequirements' => 'Minimum memory requirements.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'operatingSystem' => 'Operating systems supported (Windows 7, OS X 10.6, Android 1.6).', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'permissions' => 'Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'processorRequirements' => 'Processor architecture required to run the application (e.g. IA64).', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releaseNotes' => 'Description of what changed in this version.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'requirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'screenshot' => 'A link to a screenshot image of the app.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'softwareAddOn' => 'Additional content for a software application.', + 'softwareHelp' => 'Software application help.', + 'softwareRequirements' => 'Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (examples: DirectX, Java or .NET runtime).', + 'softwareVersion' => 'Version of the software instance.', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'storageRequirements' => 'Storage requirements (free space required).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supportingData' => 'Supporting data for a SoftwareApplication.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WebContent.php b/src/models/jsonld/WebContent.php index 1f9896cc9..8436238b3 100644 --- a/src/models/jsonld/WebContent.php +++ b/src/models/jsonld/WebContent.php @@ -30,346 +30,346 @@ */ class WebContent extends MetaJsonLd implements WebContentInterface, CreativeWorkInterface, ThingInterface { - use WebContentTrait; - use CreativeWorkTrait; - use ThingTrait; + use WebContentTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WebContent'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WebContent'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WebContent'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WebContent'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'WebContent is a type representing all [[WebPage]], [[WebSite]] and [[WebPageElement]] content. It is sometimes the case that detailed distinctions between Web pages, sites and their parts are not always important or obvious. The [[WebContent]] type makes it easier to describe Web-addressable content without requiring such distinctions to always be stated. (The intent is that the existing types [[WebPage]], [[WebSite]] and [[WebPageElement]] will eventually be declared as subtypes of [[WebContent]].)'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'WebContent is a type representing all [[WebPage]], [[WebSite]] and [[WebPageElement]] content. It is sometimes the case that detailed distinctions between Web pages, sites and their parts are not always important or obvious. The [[WebContent]] type makes it easier to describe Web-addressable content without requiring such distinctions to always be stated. (The intent is that the existing types [[WebPage]], [[WebSite]] and [[WebPageElement]] will eventually be declared as subtypes of [[WebContent]].)'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WebPage.php b/src/models/jsonld/WebPage.php index 32e5e2fe5..4961f31ae 100644 --- a/src/models/jsonld/WebPage.php +++ b/src/models/jsonld/WebPage.php @@ -27,366 +27,366 @@ */ class WebPage extends MetaJsonLd implements WebPageInterface, CreativeWorkInterface, ThingInterface { - use WebPageTrait; - use CreativeWorkTrait; - use ThingTrait; + use WebPageTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WebPage'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WebPage'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WebPage'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WebPage'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A web page. Every web page is implicitly assumed to be declared to be of type WebPage, so the various properties about that webpage, such as breadcrumb may be used. We recommend explicit declaration if these properties are specified, but if they are found outside of an itemscope, they will be assumed to be about the page.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A web page. Every web page is implicitly assumed to be declared to be of type WebPage, so the various properties about that webpage, such as breadcrumb may be used. We recommend explicit declaration if these properties are specified, but if they are found outside of an itemscope, they will be assumed to be about the page.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'breadcrumb' => ['BreadcrumbList', 'Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'lastReviewed' => ['Date'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainContentOfPage' => ['WebPageElement'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'primaryImageOfPage' => ['ImageObject'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'relatedLink' => ['URL'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviewedBy' => ['Organization', 'Person'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'significantLink' => ['URL'], - 'significantLinks' => ['URL'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'speakable' => ['SpeakableSpecification', 'URL'], - 'specialty' => ['Specialty'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'breadcrumb' => ['BreadcrumbList', 'Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'lastReviewed' => ['Date'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainContentOfPage' => ['WebPageElement'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'primaryImageOfPage' => ['ImageObject'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'relatedLink' => ['URL'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviewedBy' => ['Organization', 'Person'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'significantLink' => ['URL'], + 'significantLinks' => ['URL'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'speakable' => ['SpeakableSpecification', 'URL'], + 'specialty' => ['Specialty'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'primaryImageOfPage' => 'Indicates the main image on the page.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'relatedLink' => 'A link related to this web page, for example to other related web pages.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', - 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'breadcrumb' => 'A set of links that can help a user understand and navigate a website hierarchy.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'lastReviewed' => 'Date on which the content on this web page was last reviewed for accuracy and/or completeness.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainContentOfPage' => 'Indicates if this web page element is the main subject of the page.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'primaryImageOfPage' => 'Indicates the main image on the page.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'relatedLink' => 'A link related to this web page, for example to other related web pages.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviewedBy' => 'People or organizations that have reviewed the content on this web page for accuracy and/or completeness.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'significantLink' => 'One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'significantLinks' => 'The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + 'speakable' => 'Indicates sections of a Web page that are particularly \'speakable\' in the sense of being highlighted as being especially appropriate for text-to-speech conversion. Other sections of a page may also be usefully spoken in particular circumstances; the \'speakable\' property serves to indicate the parts most likely to be generally useful for speech. The *speakable* property can be repeated an arbitrary number of times, with three kinds of possible \'content-locator\' values: 1.) *id-value* URL references - uses *id-value* of an element in the page being annotated. The simplest use of *speakable* has (potentially relative) URL values, referencing identified sections of the document concerned. 2.) CSS Selectors - addresses content in the annotated page, e.g. via class attribute. Use the [[cssSelector]] property. 3.) XPaths - addresses content via XPaths (assuming an XML view of the content). Use the [[xpath]] property. For more sophisticated markup of speakable sections beyond simple ID references, either CSS selectors or XPath expressions to pick out document section(s) as speakable. For this we define a supporting type, [[SpeakableSpecification]] which is defined to be a possible value of the *speakable* property. ', + 'specialty' => 'One of the domain specialities to which this web page\'s content applies.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WebPageElement.php b/src/models/jsonld/WebPageElement.php index 69f2fe72e..e8f3453e4 100644 --- a/src/models/jsonld/WebPageElement.php +++ b/src/models/jsonld/WebPageElement.php @@ -23,350 +23,350 @@ */ class WebPageElement extends MetaJsonLd implements WebPageElementInterface, CreativeWorkInterface, ThingInterface { - use WebPageElementTrait; - use CreativeWorkTrait; - use ThingTrait; + use WebPageElementTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WebPageElement'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WebPageElement'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WebPageElement'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WebPageElement'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A web page element, like a table or an image.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A web page element, like a table or an image.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'cssSelector' => ['CssSelectorType'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'], - 'xpath' => ['XPathType'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'cssSelector' => ['CssSelectorType'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + 'xpath' => ['XPathType'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', - 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'cssSelector' => 'A CSS selector, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + 'xpath' => 'An XPath, e.g. of a [[SpeakableSpecification]] or [[WebPageElement]]. In the latter case, multiple matches within a page can constitute a single conceptual "Web page element".', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WebSite.php b/src/models/jsonld/WebSite.php index 3d5eae8bf..35180e4cf 100644 --- a/src/models/jsonld/WebSite.php +++ b/src/models/jsonld/WebSite.php @@ -24,348 +24,348 @@ */ class WebSite extends MetaJsonLd implements WebSiteInterface, CreativeWorkInterface, ThingInterface { - use WebSiteTrait; - use CreativeWorkTrait; - use ThingTrait; + use WebSiteTrait; + use CreativeWorkTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WebSite'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WebSite'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WebSite'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WebSite'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreativeWork'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreativeWork'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'about' => ['Thing'], - 'abstract' => ['Text'], - 'accessMode' => ['Text'], - 'accessModeSufficient' => ['ItemList'], - 'accessibilityAPI' => ['Text'], - 'accessibilityControl' => ['Text'], - 'accessibilityFeature' => ['Text'], - 'accessibilityHazard' => ['Text'], - 'accessibilitySummary' => ['Text'], - 'accountablePerson' => ['Person'], - 'acquireLicensePage' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alternativeHeadline' => ['Text'], - 'archivedAt' => ['WebPage', 'URL'], - 'assesses' => ['DefinedTerm', 'Text'], - 'associatedMedia' => ['MediaObject'], - 'audience' => ['Audience'], - 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], - 'author' => ['Organization', 'Person'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'character' => ['Person'], - 'citation' => ['CreativeWork', 'Text'], - 'comment' => ['Comment'], - 'commentCount' => ['Integer'], - 'conditionsOfAccess' => ['Text'], - 'contentLocation' => ['Place'], - 'contentRating' => ['Text', 'Rating'], - 'contentReferenceTime' => ['DateTime'], - 'contributor' => ['Organization', 'Person'], - 'copyrightHolder' => ['Organization', 'Person'], - 'copyrightNotice' => ['Text'], - 'copyrightYear' => ['Number'], - 'correction' => ['URL', 'Text', 'CorrectionComment'], - 'countryOfOrigin' => ['Country'], - 'creativeWorkStatus' => ['DefinedTerm', 'Text'], - 'creator' => ['Person', 'Organization'], - 'creditText' => ['Text'], - 'dateCreated' => ['DateTime', 'Date'], - 'dateModified' => ['DateTime', 'Date'], - 'datePublished' => ['DateTime', 'Date'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'discussionUrl' => ['URL'], - 'editEIDR' => ['URL', 'Text'], - 'editor' => ['Person'], - 'educationalAlignment' => ['AlignmentObject'], - 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], - 'educationalUse' => ['DefinedTerm', 'Text'], - 'encoding' => ['MediaObject'], - 'encodingFormat' => ['URL', 'Text'], - 'encodings' => ['MediaObject'], - 'exampleOfWork' => ['CreativeWork'], - 'expires' => ['Date', 'DateTime'], - 'fileFormat' => ['Text', 'URL'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'genre' => ['Text', 'URL'], - 'hasPart' => ['CreativeWork'], - 'headline' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'interactionStatistic' => ['InteractionCounter'], - 'interactivityType' => ['Text'], - 'interpretedAsClaim' => ['Claim'], - 'isAccessibleForFree' => ['Boolean'], - 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], - 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], - 'isFamilyFriendly' => ['Boolean'], - 'isPartOf' => ['URL', 'CreativeWork'], - 'issn' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'learningResourceType' => ['DefinedTerm', 'Text'], - 'license' => ['URL', 'CreativeWork'], - 'locationCreated' => ['Place'], - 'mainEntity' => ['Thing'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maintainer' => ['Person', 'Organization'], - 'material' => ['Product', 'URL', 'Text'], - 'materialExtent' => ['QuantitativeValue', 'Text'], - 'mentions' => ['Thing'], - 'name' => ['Text'], - 'offers' => ['Demand', 'Offer'], - 'pattern' => ['DefinedTerm', 'Text'], - 'position' => ['Text', 'Integer'], - 'potentialAction' => ['Action'], - 'producer' => ['Organization', 'Person'], - 'provider' => ['Organization', 'Person'], - 'publication' => ['PublicationEvent'], - 'publisher' => ['Organization', 'Person'], - 'publisherImprint' => ['Organization'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'recordedAt' => ['Event'], - 'releasedEvent' => ['PublicationEvent'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'schemaVersion' => ['URL', 'Text'], - 'sdDatePublished' => ['Date'], - 'sdLicense' => ['CreativeWork', 'URL'], - 'sdPublisher' => ['Organization', 'Person'], - 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], - 'sourceOrganization' => ['Organization'], - 'spatial' => ['Place'], - 'spatialCoverage' => ['Place'], - 'sponsor' => ['Organization', 'Person'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'teaches' => ['DefinedTerm', 'Text'], - 'temporal' => ['DateTime', 'Text'], - 'temporalCoverage' => ['URL', 'Text', 'DateTime'], - 'text' => ['Text'], - 'thumbnailUrl' => ['URL'], - 'timeRequired' => ['Duration'], - 'translationOfWork' => ['CreativeWork'], - 'translator' => ['Organization', 'Person'], - 'typicalAgeRange' => ['Text'], - 'url' => ['URL'], - 'usageInfo' => ['URL', 'CreativeWork'], - 'version' => ['Number', 'Text'], - 'video' => ['VideoObject', 'Clip'], - 'workExample' => ['CreativeWork'], - 'workTranslation' => ['CreativeWork'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'about' => ['Thing'], + 'abstract' => ['Text'], + 'accessMode' => ['Text'], + 'accessModeSufficient' => ['ItemList'], + 'accessibilityAPI' => ['Text'], + 'accessibilityControl' => ['Text'], + 'accessibilityFeature' => ['Text'], + 'accessibilityHazard' => ['Text'], + 'accessibilitySummary' => ['Text'], + 'accountablePerson' => ['Person'], + 'acquireLicensePage' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alternativeHeadline' => ['Text'], + 'archivedAt' => ['WebPage', 'URL'], + 'assesses' => ['DefinedTerm', 'Text'], + 'associatedMedia' => ['MediaObject'], + 'audience' => ['Audience'], + 'audio' => ['MusicRecording', 'AudioObject', 'Clip'], + 'author' => ['Organization', 'Person'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'character' => ['Person'], + 'citation' => ['CreativeWork', 'Text'], + 'comment' => ['Comment'], + 'commentCount' => ['Integer'], + 'conditionsOfAccess' => ['Text'], + 'contentLocation' => ['Place'], + 'contentRating' => ['Text', 'Rating'], + 'contentReferenceTime' => ['DateTime'], + 'contributor' => ['Organization', 'Person'], + 'copyrightHolder' => ['Organization', 'Person'], + 'copyrightNotice' => ['Text'], + 'copyrightYear' => ['Number'], + 'correction' => ['URL', 'Text', 'CorrectionComment'], + 'countryOfOrigin' => ['Country'], + 'creativeWorkStatus' => ['DefinedTerm', 'Text'], + 'creator' => ['Person', 'Organization'], + 'creditText' => ['Text'], + 'dateCreated' => ['DateTime', 'Date'], + 'dateModified' => ['DateTime', 'Date'], + 'datePublished' => ['DateTime', 'Date'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'discussionUrl' => ['URL'], + 'editEIDR' => ['URL', 'Text'], + 'editor' => ['Person'], + 'educationalAlignment' => ['AlignmentObject'], + 'educationalLevel' => ['Text', 'URL', 'DefinedTerm'], + 'educationalUse' => ['DefinedTerm', 'Text'], + 'encoding' => ['MediaObject'], + 'encodingFormat' => ['URL', 'Text'], + 'encodings' => ['MediaObject'], + 'exampleOfWork' => ['CreativeWork'], + 'expires' => ['Date', 'DateTime'], + 'fileFormat' => ['Text', 'URL'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'genre' => ['Text', 'URL'], + 'hasPart' => ['CreativeWork'], + 'headline' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'interactionStatistic' => ['InteractionCounter'], + 'interactivityType' => ['Text'], + 'interpretedAsClaim' => ['Claim'], + 'isAccessibleForFree' => ['Boolean'], + 'isBasedOn' => ['URL', 'Product', 'CreativeWork'], + 'isBasedOnUrl' => ['URL', 'Product', 'CreativeWork'], + 'isFamilyFriendly' => ['Boolean'], + 'isPartOf' => ['URL', 'CreativeWork'], + 'issn' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'learningResourceType' => ['DefinedTerm', 'Text'], + 'license' => ['URL', 'CreativeWork'], + 'locationCreated' => ['Place'], + 'mainEntity' => ['Thing'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maintainer' => ['Person', 'Organization'], + 'material' => ['Product', 'URL', 'Text'], + 'materialExtent' => ['QuantitativeValue', 'Text'], + 'mentions' => ['Thing'], + 'name' => ['Text'], + 'offers' => ['Demand', 'Offer'], + 'pattern' => ['DefinedTerm', 'Text'], + 'position' => ['Text', 'Integer'], + 'potentialAction' => ['Action'], + 'producer' => ['Organization', 'Person'], + 'provider' => ['Organization', 'Person'], + 'publication' => ['PublicationEvent'], + 'publisher' => ['Organization', 'Person'], + 'publisherImprint' => ['Organization'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'recordedAt' => ['Event'], + 'releasedEvent' => ['PublicationEvent'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'schemaVersion' => ['URL', 'Text'], + 'sdDatePublished' => ['Date'], + 'sdLicense' => ['CreativeWork', 'URL'], + 'sdPublisher' => ['Organization', 'Person'], + 'size' => ['DefinedTerm', 'QuantitativeValue', 'Text', 'SizeSpecification'], + 'sourceOrganization' => ['Organization'], + 'spatial' => ['Place'], + 'spatialCoverage' => ['Place'], + 'sponsor' => ['Organization', 'Person'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'teaches' => ['DefinedTerm', 'Text'], + 'temporal' => ['DateTime', 'Text'], + 'temporalCoverage' => ['URL', 'Text', 'DateTime'], + 'text' => ['Text'], + 'thumbnailUrl' => ['URL'], + 'timeRequired' => ['Duration'], + 'translationOfWork' => ['CreativeWork'], + 'translator' => ['Organization', 'Person'], + 'typicalAgeRange' => ['Text'], + 'url' => ['URL'], + 'usageInfo' => ['URL', 'CreativeWork'], + 'version' => ['Number', 'Text'], + 'video' => ['VideoObject', 'Clip'], + 'workExample' => ['CreativeWork'], + 'workTranslation' => ['CreativeWork'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'about' => 'The subject matter of the content.', - 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', - 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', - 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', - 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', - 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', - 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', - 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', - 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', - 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', - 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', - '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.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alternativeHeadline' => 'A secondary title of the CreativeWork.', - 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', - 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', - 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', - 'audience' => 'An intended audience, i.e. a group for whom something was created.', - 'audio' => 'An embedded audio object.', - 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'character' => 'Fictional person connected with a creative work.', - 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', - 'comment' => 'Comments, typically from users.', - 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', - 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', - 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', - 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', - 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', - 'contributor' => 'A secondary contributor to the CreativeWork or Event.', - 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', - 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', - 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', - 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', - 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', - 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', - 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', - 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', - 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', - 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', - 'datePublished' => 'Date of first broadcast/publication.', - 'description' => 'A description of the item.', - '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.', - 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', - 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', - 'editor' => 'Specifies the Person who edited the CreativeWork.', - 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', - 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', - 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', - 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', - 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', - 'encodings' => 'A media object that encodes this CreativeWork.', - 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', - 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', - 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'genre' => 'Genre of the creative work, broadcast channel or group.', - 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', - 'headline' => 'Headline of the article.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', - 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', - 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', - 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', - 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', - 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', - '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.', - 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', - 'license' => 'A license document that applies to this content, typically indicated by URL.', - 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', - 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', - '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.', - 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', - 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', - 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', - 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', - 'name' => 'The name of the item.', - '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. ', - 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', - 'position' => 'The position of an item in a series or sequence of items.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', - '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.', - 'publication' => 'A publication event associated with the item.', - 'publisher' => 'The publisher of the creative work.', - 'publisherImprint' => 'The publishing division which published the comic.', - '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. ', - 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', - 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', - 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', - 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', - 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', - 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', - 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', - 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', - 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', - 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', - 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', - 'text' => 'The textual content of this CreativeWork.', - 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', - 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', - 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', - 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', - 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', - 'url' => 'URL of the item.', - 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', - 'version' => 'The version of the CreativeWork embodied by a specified resource.', - 'video' => 'An embedded video object.', - 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', - 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'about' => 'The subject matter of the content.', + 'abstract' => 'An abstract is a short description that summarizes a [[CreativeWork]].', + 'accessMode' => 'The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessMode-vocabulary).', + 'accessModeSufficient' => 'A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessModeSufficient-vocabulary).', + 'accessibilityAPI' => 'Indicates that the resource is compatible with the referenced accessibility API. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityAPI-vocabulary).', + 'accessibilityControl' => 'Identifies input methods that are sufficient to fully control the described resource. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityControl-vocabulary).', + 'accessibilityFeature' => 'Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityFeature-vocabulary).', + 'accessibilityHazard' => 'A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3. Values should be drawn from the [approved vocabulary](https://www.w3.org/2021/a11y-discov-vocab/latest/#accessibilityHazard-vocabulary).', + 'accessibilitySummary' => 'A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."', + 'accountablePerson' => 'Specifies the Person that is legally accountable for the CreativeWork.', + 'acquireLicensePage' => 'Indicates a page documenting how licenses can be purchased or otherwise acquired, for the current item.', + '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.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alternativeHeadline' => 'A secondary title of the CreativeWork.', + 'archivedAt' => 'Indicates a page or other link involved in archival of a [[CreativeWork]]. In the case of [[MediaReview]], the items in a [[MediaReviewItem]] may often become inaccessible, but be archived by archival, journalistic, activist, or law enforcement organizations. In such cases, the referenced page may not directly publish the content.', + 'assesses' => 'The item being described is intended to assess the competency or learning outcome defined by the referenced term.', + 'associatedMedia' => 'A media object that encodes this CreativeWork. This property is a synonym for encoding.', + 'audience' => 'An intended audience, i.e. a group for whom something was created.', + 'audio' => 'An embedded audio object.', + 'author' => 'The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'character' => 'Fictional person connected with a creative work.', + 'citation' => 'A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.', + 'comment' => 'Comments, typically from users.', + 'commentCount' => 'The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.', + 'conditionsOfAccess' => 'Conditions that affect the availability of, or method(s) of access to, an item. Typically used for real world items such as an [[ArchiveComponent]] held by an [[ArchiveOrganization]]. This property is not suitable for use as a general Web access control mechanism. It is expressed only in natural language. For example "Available by appointment from the Reading Room" or "Accessible only from logged-in accounts ". ', + 'contentLocation' => 'The location depicted or described in the content. For example, the location in a photograph or painting.', + 'contentRating' => 'Official rating of a piece of content—for example, \'MPAA PG-13\'.', + 'contentReferenceTime' => 'The specific time described by a creative work, for works (e.g. articles, video objects etc.) that emphasise a particular moment within an Event.', + 'contributor' => 'A secondary contributor to the CreativeWork or Event.', + 'copyrightHolder' => 'The party holding the legal copyright to the CreativeWork.', + 'copyrightNotice' => 'Text of a notice appropriate for describing the copyright aspects of this Creative Work, ideally indicating the owner of the copyright for the Work.', + 'copyrightYear' => 'The year during which the claimed copyright for the CreativeWork was first asserted.', + 'correction' => 'Indicates a correction to a [[CreativeWork]], either via a [[CorrectionComment]], textually or in another document.', + 'countryOfOrigin' => 'The country of origin of something, including products as well as creative works such as movie and TV content. In the case of TV and movie, this would be the country of the principle offices of the production company or individual responsible for the movie. For other kinds of [[CreativeWork]] it is difficult to provide fully general guidance, and properties such as [[contentLocation]] and [[locationCreated]] may be more applicable. In the case of products, the country of origin of the product. The exact interpretation of this may vary by context and product type, and cannot be fully enumerated here.', + 'creativeWorkStatus' => 'The status of a creative work in terms of its stage in a lifecycle. Example terms include Incomplete, Draft, Published, Obsolete. Some organizations define a set of terms for the stages of their publication lifecycle.', + 'creator' => 'The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.', + 'creditText' => 'Text that can be used to credit person(s) and/or organization(s) associated with a published Creative Work.', + 'dateCreated' => 'The date on which the CreativeWork was created or the item was added to a DataFeed.', + 'dateModified' => 'The date on which the CreativeWork was most recently modified or when the item\'s entry was modified within a DataFeed.', + 'datePublished' => 'Date of first broadcast/publication.', + 'description' => 'A description of the item.', + '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.', + 'discussionUrl' => 'A link to the page containing the comments of the CreativeWork.', + 'editEIDR' => 'An [EIDR](https://eidr.org/) (Entertainment Identifier Registry) [[identifier]] representing a specific edit / edition for a work of film or television. For example, the motion picture known as "Ghostbusters" whose [[titleEIDR]] is "10.5240/7EC7-228A-510A-053E-CBB8-J" has several edits, e.g. "10.5240/1F2A-E1C5-680A-14C6-E76B-I" and "10.5240/8A35-3BEE-6497-5D12-9E4F-3". Since schema.org types like [[Movie]] and [[TVEpisode]] can be used for both works and their multiple expressions, it is possible to use [[titleEIDR]] alone (for a general description), or alongside [[editEIDR]] for a more edit-specific description. ', + 'editor' => 'Specifies the Person who edited the CreativeWork.', + 'educationalAlignment' => 'An alignment to an established educational framework. This property should not be used where the nature of the alignment can be described using a simple property, for example to express that a resource [[teaches]] or [[assesses]] a competency.', + 'educationalLevel' => 'The level in terms of progression through an educational or training context. Examples of educational levels include \'beginner\', \'intermediate\' or \'advanced\', and formal sets of level indicators.', + 'educationalUse' => 'The purpose of a work in the context of education; for example, \'assignment\', \'group work\'.', + 'encoding' => 'A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.', + 'encodingFormat' => 'Media type typically expressed using a MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml) and [MDN reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)), e.g. application/zip for a SoftwareApplication binary, audio/mpeg for .mp3 etc. In cases where a [[CreativeWork]] has several media type representations, [[encoding]] can be used to indicate each [[MediaObject]] alongside particular [[encodingFormat]] information. Unregistered or niche encoding and file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia/Wikidata entry.', + 'encodings' => 'A media object that encodes this CreativeWork.', + 'exampleOfWork' => 'A creative work that this work is an example/instance/realization/derivation of.', + 'expires' => 'Date the content expires and is no longer useful or available. For example a [[VideoObject]] or [[NewsArticle]] whose availability or relevance is time-limited, or a [[ClaimReview]] fact check whose publisher wants to indicate that it may no longer be relevant (or helpful to highlight) after some date.', + 'fileFormat' => 'Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content, e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, \'encoding\' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'genre' => 'Genre of the creative work, broadcast channel or group.', + 'hasPart' => 'Indicates an item or CreativeWork that is part of this item, or CreativeWork (in some sense).', + 'headline' => 'Headline of the article.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'interactivityType' => 'The predominant mode of learning supported by the learning resource. Acceptable values are \'active\', \'expositive\', or \'mixed\'.', + 'interpretedAsClaim' => 'Used to indicate a specific claim contained, implied, translated or refined from the content of a [[MediaObject]] or other [[CreativeWork]]. The interpreting party can be indicated using [[claimInterpreter]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isBasedOn' => 'A resource from which this work is derived or from which it is a modification or adaption.', + 'isBasedOnUrl' => 'A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.', + 'isFamilyFriendly' => 'Indicates whether this content is family friendly.', + 'isPartOf' => 'Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.', + 'issn' => 'The International Standard Serial Number (ISSN) that identifies this serial publication. You can repeat this property to identify different formats of, or the linking ISSN (ISSN-L) for, this serial publication.', + '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.', + 'learningResourceType' => 'The predominant type or kind characterizing the learning resource. For example, \'presentation\', \'handout\'.', + 'license' => 'A license document that applies to this content, typically indicated by URL.', + 'locationCreated' => 'The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.', + 'mainEntity' => 'Indicates the primary entity described in some page or other CreativeWork.', + '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.', + 'maintainer' => 'A maintainer of a [[Dataset]], software package ([[SoftwareApplication]]), or other [[Project]]. A maintainer is a [[Person]] or [[Organization]] that manages contributions to, and/or publication of, some (typically complex) artifact. It is common for distributions of software and data to be based on "upstream" sources. When [[maintainer]] is applied to a specific version of something e.g. a particular version or packaging of a [[Dataset]], it is always possible that the upstream source has a different maintainer. The [[isBasedOn]] property can be used to indicate such relationships between datasets to make the different maintenance roles clear. Similarly in the case of software, a package may have dedicated maintainers working on integration into software distributions such as Ubuntu, as well as upstream maintainers of the underlying work. ', + 'material' => 'A material that something is made from, e.g. leather, wool, cotton, paper.', + 'materialExtent' => 'The quantity of the materials being described or an expression of the physical space they occupy.', + 'mentions' => 'Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.', + 'name' => 'The name of the item.', + '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. ', + 'pattern' => 'A pattern that something has, for example \'polka dot\', \'striped\', \'Canadian flag\'. Values are typically expressed as text, although links to controlled value schemes are also supported.', + 'position' => 'The position of an item in a series or sequence of items.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'producer' => 'The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).', + '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.', + 'publication' => 'A publication event associated with the item.', + 'publisher' => 'The publisher of the creative work.', + 'publisherImprint' => 'The publishing division which published the comic.', + '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. ', + 'recordedAt' => 'The Event where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.', + 'releasedEvent' => 'The place and time the release was issued, expressed as a PublicationEvent.', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'schemaVersion' => 'Indicates (by URL or string) a particular version of a schema used in some CreativeWork. This property was created primarily to indicate the use of a specific schema.org release, e.g. ```10.0``` as a simple string, or more explicitly via URL, ```https://schema.org/docs/releases.html#v10.0```. There may be situations in which other schemas might usefully be referenced this way, e.g. ```http://dublincore.org/specifications/dublin-core/dces/1999-07-02/``` but this has not been carefully explored in the community.', + 'sdDatePublished' => 'Indicates the date on which the current structured data was generated / published. Typically used alongside [[sdPublisher]]', + 'sdLicense' => 'A license document that applies to this structured data, typically indicated by URL.', + 'sdPublisher' => 'Indicates the party responsible for generating and publishing the current structured data markup, typically in cases where the structured data is derived automatically from existing published content but published on a different site. For example, student projects and open data initiatives often re-publish existing content with more explicitly structured metadata. The [[sdPublisher]] property helps make such practices more explicit.', + 'size' => 'A standardized size of a product or creative work, specified either through a simple textual string (for example \'XL\', \'32Wx34L\'), a QuantitativeValue with a unitCode, or a comprehensive and structured [[SizeSpecification]]; in other cases, the [[width]], [[height]], [[depth]] and [[weight]] properties may be more applicable. ', + 'sourceOrganization' => 'The Organization on whose behalf the creator was working.', + 'spatial' => 'The "spatial" property can be used in cases when more specific properties (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are not known to be appropriate.', + 'spatialCoverage' => 'The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'teaches' => 'The item being described is intended to help a person learn the competency or learning outcome defined by the referenced term.', + 'temporal' => 'The "temporal" property can be used in cases where more specific properties (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]], [[datePublished]]) are not known to be appropriate.', + 'temporalCoverage' => 'The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content, e.g. ScholarlyArticle, Book, TVSeries or TVEpisode, may indicate their temporalCoverage in broader terms - textually or via well-known URL. Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945". Open-ended date ranges can be written with ".." in place of the end date. For example, "2015-11/.." indicates a range beginning in November 2015 and with no specified final date. This is tentative and might be updated in future when ISO 8601 is officially updated.', + 'text' => 'The textual content of this CreativeWork.', + 'thumbnailUrl' => 'A thumbnail image relevant to the Thing.', + 'timeRequired' => 'Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. \'PT30M\', \'PT1H25M\'.', + 'translationOfWork' => 'The work that this work has been translated from. E.g. 物种起源 is a translationOf “On the Origin of Species”.', + 'translator' => 'Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.', + 'typicalAgeRange' => 'The typical expected age range, e.g. \'7-9\', \'11-\'.', + 'url' => 'URL of the item.', + 'usageInfo' => 'The schema.org [[usageInfo]] property indicates further information about a [[CreativeWork]]. This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.', + 'version' => 'The version of the CreativeWork embodied by a specified resource.', + 'video' => 'An embedded video object.', + 'workExample' => 'Example/instance/realization/derivation of the concept of this creative work. E.g. the paperback edition, first edition, or e-book.', + 'workTranslation' => 'A work that is a translation of the content of this work. E.g. 西遊記 has an English workTranslation “Journey to the West”, a German workTranslation “Monkeys Pilgerfahrt” and a Vietnamese translation Tây du ký bình khảo.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Wednesday.php b/src/models/jsonld/Wednesday.php index b12173838..b4d68f644 100644 --- a/src/models/jsonld/Wednesday.php +++ b/src/models/jsonld/Wednesday.php @@ -23,126 +23,126 @@ */ class Wednesday extends MetaJsonLd implements WednesdayInterface, DayOfWeekInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WednesdayTrait; - use DayOfWeekTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Wednesday'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Wednesday'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DayOfWeek'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The day of the week between Tuesday and Thursday.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WednesdayTrait; + use DayOfWeekTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Wednesday'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Wednesday'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DayOfWeek'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The day of the week between Tuesday and Thursday.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WesternConventional.php b/src/models/jsonld/WesternConventional.php index 3070d7792..7ddef42c1 100644 --- a/src/models/jsonld/WesternConventional.php +++ b/src/models/jsonld/WesternConventional.php @@ -25,127 +25,127 @@ */ class WesternConventional extends MetaJsonLd implements WesternConventionalInterface, MedicineSystemInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WesternConventionalTrait; - use MedicineSystemTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WesternConventional'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WesternConventional'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicineSystem'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The conventional Western system of medicine, that aims to apply the best available evidence gained from the scientific method to clinical decision making. Also known as conventional or Western medicine.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WesternConventionalTrait; + use MedicineSystemTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WesternConventional'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WesternConventional'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicineSystem'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The conventional Western system of medicine, that aims to apply the best available evidence gained from the scientific method to clinical decision making. Also known as conventional or Western medicine.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Wholesale.php b/src/models/jsonld/Wholesale.php index 5d6084f40..ad1f28f47 100644 --- a/src/models/jsonld/Wholesale.php +++ b/src/models/jsonld/Wholesale.php @@ -23,127 +23,127 @@ */ class Wholesale extends MetaJsonLd implements WholesaleInterface, DrugCostCategoryInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WholesaleTrait; - use DrugCostCategoryTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Wholesale'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Wholesale'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DrugCostCategory'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The drug\'s cost represents the wholesale acquisition cost of the drug.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WholesaleTrait; + use DrugCostCategoryTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Wholesale'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Wholesale'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DrugCostCategory'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The drug\'s cost represents the wholesale acquisition cost of the drug.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WholesaleStore.php b/src/models/jsonld/WholesaleStore.php index 4cb94e0af..013e7ca47 100644 --- a/src/models/jsonld/WholesaleStore.php +++ b/src/models/jsonld/WholesaleStore.php @@ -23,331 +23,331 @@ */ class WholesaleStore extends MetaJsonLd implements WholesaleStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use WholesaleStoreTrait; - use StoreTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use WholesaleStoreTrait; + use StoreTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WholesaleStore'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WholesaleStore'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WholesaleStore'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WholesaleStore'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Store'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Store'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A wholesale store.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A wholesale store.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WinAction.php b/src/models/jsonld/WinAction.php index 9cb987af1..08137b295 100644 --- a/src/models/jsonld/WinAction.php +++ b/src/models/jsonld/WinAction.php @@ -23,149 +23,149 @@ */ class WinAction extends MetaJsonLd implements WinActionInterface, AchieveActionInterface, ActionInterface, ThingInterface { - use WinActionTrait; - use AchieveActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WinAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WinAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'AchieveAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of achieving victory in a competitive activity.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'instrument' => ['Thing'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'loser' => ['Person'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'loser' => 'A sub property of participant. The loser of the action.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WinActionTrait; + use AchieveActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WinAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WinAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'AchieveAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of achieving victory in a competitive activity.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'instrument' => ['Thing'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'loser' => ['Person'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'loser' => 'A sub property of participant. The loser of the action.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Winery.php b/src/models/jsonld/Winery.php index bab90eca5..1a1c11266 100644 --- a/src/models/jsonld/Winery.php +++ b/src/models/jsonld/Winery.php @@ -23,341 +23,341 @@ */ class Winery extends MetaJsonLd implements WineryInterface, FoodEstablishmentInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface { - use WineryTrait; - use FoodEstablishmentTrait; - use LocalBusinessTrait; - use PlaceTrait; - use ThingTrait; - use OrganizationTrait; + use WineryTrait; + use FoodEstablishmentTrait; + use LocalBusinessTrait; + use PlaceTrait; + use ThingTrait; + use OrganizationTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Winery'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Winery'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Winery'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Winery'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'FoodEstablishment'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'FoodEstablishment'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A winery.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A winery.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'acceptsReservations' => ['URL', 'Text', 'Boolean'], - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'branchCode' => ['Text'], - 'branchOf' => ['Organization'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'currenciesAccepted' => ['Text'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'hasMenu' => ['URL', 'Text', 'Menu'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'latitude' => ['Number', 'Text'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'menu' => ['Menu', 'Text', 'URL'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'paymentAccepted' => ['Text'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'priceRange' => ['Text'], - 'publicAccess' => ['Boolean'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'servesCuisine' => ['Text'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'sponsor' => ['Organization', 'Person'], - 'starRating' => ['Rating'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'acceptsReservations' => ['URL', 'Text', 'Boolean'], + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'branchCode' => ['Text'], + 'branchOf' => ['Organization'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'currenciesAccepted' => ['Text'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'hasMenu' => ['URL', 'Text', 'Menu'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'latitude' => ['Number', 'Text'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'menu' => ['Menu', 'Text', 'URL'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'paymentAccepted' => ['Text'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'priceRange' => ['Text'], + 'publicAccess' => ['Boolean'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'servesCuisine' => ['Text'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'sponsor' => ['Organization', 'Person'], + 'starRating' => ['Rating'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', - '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.', - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - '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.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - '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. ', - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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".', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'priceRange' => 'The price range of the business, for example ```$$$```.', - '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', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'servesCuisine' => 'The cuisine of the restaurant.', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - '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.', - 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - '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.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'acceptsReservations' => 'Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.', + '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.', + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + '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.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + '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. ', + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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".', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + 'hasMenu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'menu' => 'Either the actual menu as a structured representation, as text, or a URL of the menu.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'priceRange' => 'The price range of the business, for example ```$$$```.', + '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', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'servesCuisine' => 'The cuisine of the restaurant.', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + '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.', + 'starRating' => 'An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + '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.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/Withdrawn.php b/src/models/jsonld/Withdrawn.php index d87e143de..c11ede32e 100644 --- a/src/models/jsonld/Withdrawn.php +++ b/src/models/jsonld/Withdrawn.php @@ -23,127 +23,127 @@ */ class Withdrawn extends MetaJsonLd implements WithdrawnInterface, MedicalStudyStatusInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WithdrawnTrait; - use MedicalStudyStatusTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Withdrawn'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Withdrawn'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalStudyStatus'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Withdrawn.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WithdrawnTrait; + use MedicalStudyStatusTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Withdrawn'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Withdrawn'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalStudyStatus'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Withdrawn.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WorkBasedProgram.php b/src/models/jsonld/WorkBasedProgram.php index 1981ff30f..9e769300d 100644 --- a/src/models/jsonld/WorkBasedProgram.php +++ b/src/models/jsonld/WorkBasedProgram.php @@ -27,171 +27,171 @@ */ class WorkBasedProgram extends MetaJsonLd implements WorkBasedProgramInterface, EducationalOccupationalProgramInterface, IntangibleInterface, ThingInterface { - use WorkBasedProgramTrait; - use EducationalOccupationalProgramTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WorkBasedProgram'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WorkBasedProgram'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'EducationalOccupationalProgram'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A program with both an educational and employment component. Typically based at a workplace and structured around work-based learning, with the aim of instilling competencies related to an occupation. WorkBasedProgram is used to distinguish programs such as apprenticeships from school, college or other classroom based educational programs.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'applicationDeadline' => ['Date'], - 'applicationStartDate' => ['Date'], - 'dayOfWeek' => ['DayOfWeek'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'educationalCredentialAwarded' => ['URL', 'EducationalOccupationalCredential', 'Text'], - 'educationalProgramMode' => ['Text', 'URL'], - 'endDate' => ['DateTime', 'Date'], - 'financialAidEligible' => ['DefinedTerm', 'Text'], - 'hasCourse' => ['Course'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'maximumEnrollment' => ['Integer'], - 'name' => ['Text'], - 'numberOfCredits' => ['StructuredValue', 'Integer'], - 'occupationalCategory' => ['Text', 'CategoryCode'], - 'occupationalCredentialAwarded' => ['EducationalOccupationalCredential', 'Text', 'URL'], - 'offers' => ['Demand', 'Offer'], - 'potentialAction' => ['Action'], - 'programPrerequisites' => ['Text', 'EducationalOccupationalCredential', 'Course', 'AlignmentObject'], - 'programType' => ['DefinedTerm', 'Text'], - 'provider' => ['Organization', 'Person'], - 'salaryUponCompletion' => ['MonetaryAmountDistribution'], - 'sameAs' => ['URL'], - 'startDate' => ['DateTime', 'Date'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'termDuration' => ['Duration'], - 'termsPerYear' => ['Number'], - 'timeOfDay' => ['Text'], - 'timeToComplete' => ['Duration'], - 'trainingSalary' => ['MonetaryAmountDistribution'], - 'typicalCreditsPerTerm' => ['Integer', 'StructuredValue'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'applicationDeadline' => 'The date at which the program stops collecting applications for the next enrollment cycle.', - 'applicationStartDate' => 'The date at which the program begins collecting applications for the next enrollment cycle.', - 'dayOfWeek' => 'The day of the week for which these opening hours are valid.', - 'description' => 'A description of the item.', - '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.', - 'educationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.', - 'educationalProgramMode' => 'Similar to courseMode, the medium or means of delivery of the program as a whole. The value may either be a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous ).', - 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'financialAidEligible' => 'A financial aid type or program which students may use to pay for tuition or fees associated with the program.', - 'hasCourse' => 'A course or class that is one of the learning opportunities that constitute an educational / occupational program. No information is implied about whether the course is mandatory or optional; no guarantee is implied about whether the course will be available to everyone on the program.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'maximumEnrollment' => 'The maximum number of students who may be enrolled in the program.', - 'name' => 'The name of the item.', - 'numberOfCredits' => 'The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.', - 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', - 'occupationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.', - '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. ', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - 'programPrerequisites' => 'Prerequisites for enrolling in the program.', - 'programType' => 'The type of educational or occupational program. For example, classroom, internship, alternance, etc.', - '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.', - 'salaryUponCompletion' => 'The expected salary upon completing the training.', - '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.', - 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'termDuration' => 'The amount of time in a term as defined by the institution. A term is a length of time where students take one or more classes. Semesters and quarters are common units for term.', - 'termsPerYear' => 'The number of times terms of study are offered per year. Semesters and quarters are common units for term. For example, if the student can only take 2 semesters for the program in one year, then termsPerYear should be 2.', - 'timeOfDay' => 'The time of day the program normally runs. For example, "evenings".', - 'timeToComplete' => 'The expected length of time to complete the program if attending full-time.', - 'trainingSalary' => 'The estimated salary earned while in the program.', - 'typicalCreditsPerTerm' => 'The number of credits or units a full-time student would be expected to take in 1 term however \'term\' is defined by the institution.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WorkBasedProgramTrait; + use EducationalOccupationalProgramTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WorkBasedProgram'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WorkBasedProgram'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'EducationalOccupationalProgram'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A program with both an educational and employment component. Typically based at a workplace and structured around work-based learning, with the aim of instilling competencies related to an occupation. WorkBasedProgram is used to distinguish programs such as apprenticeships from school, college or other classroom based educational programs.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'applicationDeadline' => ['Date'], + 'applicationStartDate' => ['Date'], + 'dayOfWeek' => ['DayOfWeek'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'educationalCredentialAwarded' => ['URL', 'EducationalOccupationalCredential', 'Text'], + 'educationalProgramMode' => ['Text', 'URL'], + 'endDate' => ['DateTime', 'Date'], + 'financialAidEligible' => ['DefinedTerm', 'Text'], + 'hasCourse' => ['Course'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'maximumEnrollment' => ['Integer'], + 'name' => ['Text'], + 'numberOfCredits' => ['StructuredValue', 'Integer'], + 'occupationalCategory' => ['Text', 'CategoryCode'], + 'occupationalCredentialAwarded' => ['EducationalOccupationalCredential', 'Text', 'URL'], + 'offers' => ['Demand', 'Offer'], + 'potentialAction' => ['Action'], + 'programPrerequisites' => ['Text', 'EducationalOccupationalCredential', 'Course', 'AlignmentObject'], + 'programType' => ['DefinedTerm', 'Text'], + 'provider' => ['Organization', 'Person'], + 'salaryUponCompletion' => ['MonetaryAmountDistribution'], + 'sameAs' => ['URL'], + 'startDate' => ['DateTime', 'Date'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'termDuration' => ['Duration'], + 'termsPerYear' => ['Number'], + 'timeOfDay' => ['Text'], + 'timeToComplete' => ['Duration'], + 'trainingSalary' => ['MonetaryAmountDistribution'], + 'typicalCreditsPerTerm' => ['Integer', 'StructuredValue'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'applicationDeadline' => 'The date at which the program stops collecting applications for the next enrollment cycle.', + 'applicationStartDate' => 'The date at which the program begins collecting applications for the next enrollment cycle.', + 'dayOfWeek' => 'The day of the week for which these opening hours are valid.', + 'description' => 'A description of the item.', + '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.', + 'educationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.', + 'educationalProgramMode' => 'Similar to courseMode, the medium or means of delivery of the program as a whole. The value may either be a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous ).', + 'endDate' => 'The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'financialAidEligible' => 'A financial aid type or program which students may use to pay for tuition or fees associated with the program.', + 'hasCourse' => 'A course or class that is one of the learning opportunities that constitute an educational / occupational program. No information is implied about whether the course is mandatory or optional; no guarantee is implied about whether the course will be available to everyone on the program.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'maximumEnrollment' => 'The maximum number of students who may be enrolled in the program.', + 'name' => 'The name of the item.', + 'numberOfCredits' => 'The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.', + 'occupationalCategory' => 'A category describing the job, preferably using a term from a taxonomy such as [BLS O*NET-SOC](http://www.onetcenter.org/taxonomy.html), [ISCO-08](https://www.ilo.org/public/english/bureau/stat/isco/isco08/) or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided. Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.', + 'occupationalCredentialAwarded' => 'A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.', + '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. ', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + 'programPrerequisites' => 'Prerequisites for enrolling in the program.', + 'programType' => 'The type of educational or occupational program. For example, classroom, internship, alternance, etc.', + '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.', + 'salaryUponCompletion' => 'The expected salary upon completing the training.', + '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.', + 'startDate' => 'The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'termDuration' => 'The amount of time in a term as defined by the institution. A term is a length of time where students take one or more classes. Semesters and quarters are common units for term.', + 'termsPerYear' => 'The number of times terms of study are offered per year. Semesters and quarters are common units for term. For example, if the student can only take 2 semesters for the program in one year, then termsPerYear should be 2.', + 'timeOfDay' => 'The time of day the program normally runs. For example, "evenings".', + 'timeToComplete' => 'The expected length of time to complete the program if attending full-time.', + 'trainingSalary' => 'The estimated salary earned while in the program.', + 'typicalCreditsPerTerm' => 'The number of credits or units a full-time student would be expected to take in 1 term however \'term\' is defined by the institution.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WorkersUnion.php b/src/models/jsonld/WorkersUnion.php index 6488d227f..bb502b10b 100644 --- a/src/models/jsonld/WorkersUnion.php +++ b/src/models/jsonld/WorkersUnion.php @@ -26,254 +26,254 @@ */ class WorkersUnion extends MetaJsonLd implements WorkersUnionInterface, OrganizationInterface, ThingInterface { - use WorkersUnionTrait; - use OrganizationTrait; - use ThingTrait; + use WorkersUnionTrait; + use OrganizationTrait; + use ThingTrait; - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WorkersUnion'; + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WorkersUnion'; - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WorkersUnion'; + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WorkersUnion'; - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Organization'; + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Organization'; - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A Workers Union (also known as a Labor Union, Labour Union, or Trade Union) is an organization that promotes the interests of its worker members by collectively bargaining with management, organizing, and political lobbying.'; + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A Workers Union (also known as a Labor Union, Labour Union, or Trade Union) is an organization that promotes the interests of its worker members by collectively bargaining with management, organizing, and political lobbying.'; - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'alumni' => ['Person'], - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], - 'award' => ['Text'], - 'awards' => ['Text'], - 'brand' => ['Brand', 'Organization'], - 'contactPoint' => ['ContactPoint'], - 'contactPoints' => ['ContactPoint'], - 'correctionsPolicy' => ['URL', 'CreativeWork'], - 'department' => ['Organization'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'dissolutionDate' => ['Date'], - 'diversityPolicy' => ['URL', 'CreativeWork'], - 'diversityStaffingReport' => ['Article', 'URL'], - 'duns' => ['Text'], - 'email' => ['Text'], - 'employee' => ['Person'], - 'employees' => ['Person'], - 'ethicsPolicy' => ['CreativeWork', 'URL'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'founder' => ['Person'], - 'founders' => ['Person'], - 'foundingDate' => ['Date'], - 'foundingLocation' => ['Place'], - 'funder' => ['Organization', 'Person'], - 'funding' => ['Grant'], - 'globalLocationNumber' => ['Text'], - 'hasCredential' => ['EducationalOccupationalCredential'], - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], - 'hasOfferCatalog' => ['OfferCatalog'], - 'hasPOS' => ['Place'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'interactionStatistic' => ['InteractionCounter'], - 'isicV4' => ['Text'], - 'iso6523Code' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'knowsAbout' => ['Thing', 'Text', 'URL'], - 'knowsLanguage' => ['Text', 'Language'], - 'legalName' => ['Text'], - 'leiCode' => ['Text'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'logo' => ['ImageObject', 'URL'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'makesOffer' => ['Offer'], - 'member' => ['Organization', 'Person'], - 'memberOf' => ['Organization', 'ProgramMembership'], - 'members' => ['Organization', 'Person'], - 'naics' => ['Text'], - 'name' => ['Text'], - 'nonprofitStatus' => ['NonprofitType'], - 'numberOfEmployees' => ['QuantitativeValue'], - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], - 'owns' => ['Product', 'OwnershipInfo'], - 'parentOrganization' => ['Organization'], - 'potentialAction' => ['Action'], - 'publishingPrinciples' => ['CreativeWork', 'URL'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'seeks' => ['Demand'], - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], - 'slogan' => ['Text'], - 'sponsor' => ['Organization', 'Person'], - 'subOrganization' => ['Organization'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'taxID' => ['Text'], - 'telephone' => ['Text'], - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], - 'url' => ['URL'], - 'vatID' => ['Text'] - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'alumni' => ['Person'], + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], + 'award' => ['Text'], + 'awards' => ['Text'], + 'brand' => ['Brand', 'Organization'], + 'contactPoint' => ['ContactPoint'], + 'contactPoints' => ['ContactPoint'], + 'correctionsPolicy' => ['URL', 'CreativeWork'], + 'department' => ['Organization'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'dissolutionDate' => ['Date'], + 'diversityPolicy' => ['URL', 'CreativeWork'], + 'diversityStaffingReport' => ['Article', 'URL'], + 'duns' => ['Text'], + 'email' => ['Text'], + 'employee' => ['Person'], + 'employees' => ['Person'], + 'ethicsPolicy' => ['CreativeWork', 'URL'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'founder' => ['Person'], + 'founders' => ['Person'], + 'foundingDate' => ['Date'], + 'foundingLocation' => ['Place'], + 'funder' => ['Organization', 'Person'], + 'funding' => ['Grant'], + 'globalLocationNumber' => ['Text'], + 'hasCredential' => ['EducationalOccupationalCredential'], + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], + 'hasOfferCatalog' => ['OfferCatalog'], + 'hasPOS' => ['Place'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'interactionStatistic' => ['InteractionCounter'], + 'isicV4' => ['Text'], + 'iso6523Code' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'knowsAbout' => ['Thing', 'Text', 'URL'], + 'knowsLanguage' => ['Text', 'Language'], + 'legalName' => ['Text'], + 'leiCode' => ['Text'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'logo' => ['ImageObject', 'URL'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'makesOffer' => ['Offer'], + 'member' => ['Organization', 'Person'], + 'memberOf' => ['Organization', 'ProgramMembership'], + 'members' => ['Organization', 'Person'], + 'naics' => ['Text'], + 'name' => ['Text'], + 'nonprofitStatus' => ['NonprofitType'], + 'numberOfEmployees' => ['QuantitativeValue'], + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], + 'owns' => ['Product', 'OwnershipInfo'], + 'parentOrganization' => ['Organization'], + 'potentialAction' => ['Action'], + 'publishingPrinciples' => ['CreativeWork', 'URL'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'seeks' => ['Demand'], + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], + 'slogan' => ['Text'], + 'sponsor' => ['Organization', 'Person'], + 'subOrganization' => ['Organization'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'taxID' => ['Text'], + 'telephone' => ['Text'], + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], + 'url' => ['URL'], + 'vatID' => ['Text'], + ]; + } - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - 'alumni' => 'Alumni of an organization.', - 'areaServed' => 'The geographic area where a service or offered item is provided.', - 'award' => 'An award won by or for this item.', - 'awards' => 'Awards won by or for this item.', - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', - 'contactPoint' => 'A contact point for a person or organization.', - 'contactPoints' => 'A contact point for a person or organization.', - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', - '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.', - 'description' => 'A description of the item.', - '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.', - 'dissolutionDate' => 'The date that this organization was dissolved.', - '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.', - '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.', - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', - 'email' => 'Email address.', - 'employee' => 'Someone working for this organization.', - 'employees' => 'People working for this organization.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'founder' => 'A person who founded this organization.', - 'founders' => 'A person who founded this organization.', - 'foundingDate' => 'The date that this organization was founded.', - 'foundingLocation' => 'The place where the Organization was founded.', - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', - '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.', - 'hasCredential' => 'A credential awarded to the Person or Organization.', - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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. ', - '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.', - '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.', - '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).', - 'legalName' => 'The official name of the organization, e.g. the registered company name.', - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - 'logo' => 'An associated logo.', - '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.', - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', - 'members' => 'A member of this organization.', - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', - 'name' => 'The name of the item.', - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', - '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.', - 'owns' => 'Products owned by the organization or person.', - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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. ', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', - 'serviceArea' => 'The geographic area where the service is provided.', - 'slogan' => 'A slogan or motto associated with the item.', - '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.', - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', - 'telephone' => 'The telephone number.', - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', - 'url' => 'URL of the item.', - 'vatID' => 'The Value-added Tax ID of the organization or person.' - ]; - } + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + 'alumni' => 'Alumni of an organization.', + 'areaServed' => 'The geographic area where a service or offered item is provided.', + 'award' => 'An award won by or for this item.', + 'awards' => 'Awards won by or for this item.', + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', + 'contactPoint' => 'A contact point for a person or organization.', + 'contactPoints' => 'A contact point for a person or organization.', + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', + '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.', + 'description' => 'A description of the item.', + '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.', + 'dissolutionDate' => 'The date that this organization was dissolved.', + '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.', + '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.', + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', + 'email' => 'Email address.', + 'employee' => 'Someone working for this organization.', + 'employees' => 'People working for this organization.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'founder' => 'A person who founded this organization.', + 'founders' => 'A person who founded this organization.', + 'foundingDate' => 'The date that this organization was founded.', + 'foundingLocation' => 'The place where the Organization was founded.', + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', + '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.', + 'hasCredential' => 'A credential awarded to the Person or Organization.', + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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. ', + '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.', + '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.', + '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).', + 'legalName' => 'The official name of the organization, e.g. the registered company name.', + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + 'logo' => 'An associated logo.', + '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.', + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', + 'members' => 'A member of this organization.', + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', + 'name' => 'The name of the item.', + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', + '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.', + 'owns' => 'Products owned by the organization or person.', + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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. ', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', + 'serviceArea' => 'The geographic area where the service is provided.', + 'slogan' => 'A slogan or motto associated with the item.', + '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.', + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', + 'telephone' => 'The telephone number.', + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', + 'url' => 'URL of the item.', + 'vatID' => 'The Value-added Tax ID of the organization or person.', + ]; + } - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); - return $rules; - } + return $rules; + } } diff --git a/src/models/jsonld/WriteAction.php b/src/models/jsonld/WriteAction.php index a77b32816..d84ab1c1d 100644 --- a/src/models/jsonld/WriteAction.php +++ b/src/models/jsonld/WriteAction.php @@ -23,151 +23,151 @@ */ class WriteAction extends MetaJsonLd implements WriteActionInterface, CreateActionInterface, ActionInterface, ThingInterface { - use WriteActionTrait; - use CreateActionTrait; - use ActionTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WriteAction'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WriteAction'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CreateAction'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The act of authoring written creative content.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'actionStatus' => ['ActionStatusType'], - 'additionalType' => ['URL'], - 'agent' => ['Organization', 'Person'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'endTime' => ['DateTime', 'Time'], - 'error' => ['Thing'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'inLanguage' => ['Text', 'Language'], - 'instrument' => ['Thing'], - 'language' => ['Language'], - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'object' => ['Thing'], - 'participant' => ['Organization', 'Person'], - 'potentialAction' => ['Action'], - 'provider' => ['Organization', 'Person'], - 'result' => ['Thing'], - 'sameAs' => ['URL'], - 'startTime' => ['Time', 'DateTime'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'target' => ['URL', 'EntryPoint'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - 'actionStatus' => 'Indicates the current disposition of the Action.', - '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.', - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'error' => 'For failed actions, more information on the cause of the failure.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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]].', - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', - 'language' => 'A sub property of instrument. The language used on this action.', - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', - '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.', - 'name' => 'The name of the item.', - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', - '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.', - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WriteActionTrait; + use CreateActionTrait; + use ActionTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WriteAction'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WriteAction'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CreateAction'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The act of authoring written creative content.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'actionStatus' => ['ActionStatusType'], + 'additionalType' => ['URL'], + 'agent' => ['Organization', 'Person'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'endTime' => ['DateTime', 'Time'], + 'error' => ['Thing'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'inLanguage' => ['Text', 'Language'], + 'instrument' => ['Thing'], + 'language' => ['Language'], + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'object' => ['Thing'], + 'participant' => ['Organization', 'Person'], + 'potentialAction' => ['Action'], + 'provider' => ['Organization', 'Person'], + 'result' => ['Thing'], + 'sameAs' => ['URL'], + 'startTime' => ['Time', 'DateTime'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'target' => ['URL', 'EntryPoint'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + 'actionStatus' => 'Indicates the current disposition of the Action.', + '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.', + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'error' => 'For failed actions, more information on the cause of the failure.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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]].', + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', + 'language' => 'A sub property of instrument. The language used on this action.', + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', + '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.', + 'name' => 'The name of the item.', + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', + '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.', + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/WritePermission.php b/src/models/jsonld/WritePermission.php index c4bfb9fa0..797b28e42 100644 --- a/src/models/jsonld/WritePermission.php +++ b/src/models/jsonld/WritePermission.php @@ -23,126 +23,126 @@ */ class WritePermission extends MetaJsonLd implements WritePermissionInterface, DigitalDocumentPermissionTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use WritePermissionTrait; - use DigitalDocumentPermissionTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'WritePermission'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/WritePermission'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'DigitalDocumentPermissionType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Permission to write or edit the document.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use WritePermissionTrait; + use DigitalDocumentPermissionTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'WritePermission'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/WritePermission'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'DigitalDocumentPermissionType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Permission to write or edit the document.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/XPathType.php b/src/models/jsonld/XPathType.php index f2308d7d3..26d46218f 100644 --- a/src/models/jsonld/XPathType.php +++ b/src/models/jsonld/XPathType.php @@ -23,99 +23,99 @@ */ class XPathType extends MetaJsonLd implements XPathTypeInterface, TextInterface { - use XPathTypeTrait; - use TextTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'XPathType'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/XPathType'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'Text'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'Text representing an XPath (typically but not necessarily version 1.0).'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return []; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use XPathTypeTrait; + use TextTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'XPathType'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/XPathType'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'Text'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'Text representing an XPath (typically but not necessarily version 1.0).'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return []; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/XRay.php b/src/models/jsonld/XRay.php index 03939b95e..1195cc791 100644 --- a/src/models/jsonld/XRay.php +++ b/src/models/jsonld/XRay.php @@ -23,127 +23,127 @@ */ class XRay extends MetaJsonLd implements XRayInterface, MedicalImagingTechniqueInterface, MedicalEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use XRayTrait; - use MedicalImagingTechniqueTrait; - use MedicalEnumerationTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'XRay'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/XRay'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'MedicalImagingTechnique'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'X-ray imaging.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use XRayTrait; + use MedicalImagingTechniqueTrait; + use MedicalEnumerationTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'XRay'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/XRay'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'MedicalImagingTechnique'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'X-ray imaging.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/ZoneBoardingPolicy.php b/src/models/jsonld/ZoneBoardingPolicy.php index 253b2fd14..fa2482770 100644 --- a/src/models/jsonld/ZoneBoardingPolicy.php +++ b/src/models/jsonld/ZoneBoardingPolicy.php @@ -23,126 +23,126 @@ */ class ZoneBoardingPolicy extends MetaJsonLd implements ZoneBoardingPolicyInterface, BoardingPolicyTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface { - use ZoneBoardingPolicyTrait; - use BoardingPolicyTypeTrait; - use EnumerationTrait; - use IntangibleTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'ZoneBoardingPolicy'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/ZoneBoardingPolicy'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'BoardingPolicyType'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'The airline boards by zones of the plane.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalType' => ['URL'], - 'alternateName' => ['Text'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'name' => ['Text'], - 'potentialAction' => ['Action'], - 'sameAs' => ['URL'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'supersededBy' => ['Class', 'Property', 'Enumeration'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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.', - 'alternateName' => 'An alias for the item.', - 'description' => 'A description of the item.', - '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.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - '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.', - 'name' => 'The name of the item.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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.', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ZoneBoardingPolicyTrait; + use BoardingPolicyTypeTrait; + use EnumerationTrait; + use IntangibleTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'ZoneBoardingPolicy'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/ZoneBoardingPolicy'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'BoardingPolicyType'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'The airline boards by zones of the plane.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalType' => ['URL'], + 'alternateName' => ['Text'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'name' => ['Text'], + 'potentialAction' => ['Action'], + 'sameAs' => ['URL'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'supersededBy' => ['Class', 'Property', 'Enumeration'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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.', + 'alternateName' => 'An alias for the item.', + 'description' => 'A description of the item.', + '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.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + '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.', + 'name' => 'The name of the item.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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.', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/jsonld/Zoo.php b/src/models/jsonld/Zoo.php index 783d3137e..1424bc3aa 100644 --- a/src/models/jsonld/Zoo.php +++ b/src/models/jsonld/Zoo.php @@ -23,215 +23,215 @@ */ class Zoo extends MetaJsonLd implements ZooInterface, CivicStructureInterface, PlaceInterface, ThingInterface { - use ZooTrait; - use CivicStructureTrait; - use PlaceTrait; - use ThingTrait; - - /** - * The Schema.org Type Name - * - * @var string - */ - public static $schemaTypeName = 'Zoo'; - - /** - * The Schema.org Type Scope - * - * @var string - */ - public static $schemaTypeScope = 'https://schema.org/Zoo'; - - /** - * The Schema.org Type Extends - * - * @var string - */ - public static $schemaTypeExtends = 'CivicStructure'; - - /** - * The Schema.org Type Description - * - * @var string - */ - public static $schemaTypeDescription = 'A zoo.'; - - - /** - * @inheritdoc - */ - public function getSchemaPropertyNames(): array - { - return array_keys($this->getSchemaPropertyExpectedTypes()); - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyExpectedTypes(): array - { - return [ - 'additionalProperty' => ['PropertyValue'], - 'additionalType' => ['URL'], - 'address' => ['Text', 'PostalAddress'], - 'aggregateRating' => ['AggregateRating'], - 'alternateName' => ['Text'], - 'amenityFeature' => ['LocationFeatureSpecification'], - 'branchCode' => ['Text'], - 'containedIn' => ['Place'], - 'containedInPlace' => ['Place'], - 'containsPlace' => ['Place'], - 'description' => ['Text'], - 'disambiguatingDescription' => ['Text'], - 'event' => ['Event'], - 'events' => ['Event'], - 'faxNumber' => ['Text'], - 'geo' => ['GeoCoordinates', 'GeoShape'], - 'geoContains' => ['Place', 'GeospatialGeometry'], - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], - 'geoCovers' => ['GeospatialGeometry', 'Place'], - 'geoCrosses' => ['GeospatialGeometry', 'Place'], - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], - 'geoEquals' => ['GeospatialGeometry', 'Place'], - 'geoIntersects' => ['GeospatialGeometry', 'Place'], - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], - 'geoTouches' => ['GeospatialGeometry', 'Place'], - 'geoWithin' => ['GeospatialGeometry', 'Place'], - 'globalLocationNumber' => ['Text'], - 'hasDriveThroughService' => ['Boolean'], - 'hasMap' => ['URL', 'Map'], - 'identifier' => ['PropertyValue', 'URL', 'Text'], - 'image' => ['URL', 'ImageObject'], - 'isAccessibleForFree' => ['Boolean'], - 'isicV4' => ['Text'], - 'keywords' => ['URL', 'DefinedTerm', 'Text'], - 'latitude' => ['Number', 'Text'], - 'logo' => ['ImageObject', 'URL'], - 'longitude' => ['Text', 'Number'], - 'mainEntityOfPage' => ['URL', 'CreativeWork'], - 'map' => ['URL'], - 'maps' => ['URL'], - 'maximumAttendeeCapacity' => ['Integer'], - 'name' => ['Text'], - 'openingHours' => ['Text'], - 'openingHoursSpecification' => ['OpeningHoursSpecification'], - 'photo' => ['Photograph', 'ImageObject'], - 'photos' => ['ImageObject', 'Photograph'], - 'potentialAction' => ['Action'], - 'publicAccess' => ['Boolean'], - 'review' => ['Review'], - 'reviews' => ['Review'], - 'sameAs' => ['URL'], - 'slogan' => ['Text'], - 'smokingAllowed' => ['Boolean'], - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], - 'subjectOf' => ['Event', 'CreativeWork'], - 'telephone' => ['Text'], - 'tourBookingPage' => ['URL'], - 'url' => ['URL'] - ]; - } - - - /** - * @inheritdoc - */ - public function getSchemaPropertyDescriptions(): array - { - return [ - '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. ', - '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.', - 'address' => 'Physical address of the item.', - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', - 'alternateName' => 'An alias for the item.', - '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.', - '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. ', - 'containedIn' => 'The basic containment relation between a place and one that contains it.', - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', - 'description' => 'A description of the item.', - '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.', - 'event' => 'Upcoming or past event associated with this place, organization, or action.', - 'events' => 'Upcoming or past events associated with this place or organization.', - 'faxNumber' => 'The fax number.', - 'geo' => 'The geo coordinates of the place.', - '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).', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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).', - '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).', - '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).)', - '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).', - '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.', - '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.', - 'hasMap' => 'A URL to a map of the place.', - '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. ', - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', - '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.', - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - 'logo' => 'An associated logo.', - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', - '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.', - 'map' => 'A URL to a map of the place.', - 'maps' => 'A URL to a map of the place.', - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', - 'name' => 'The name of the item.', - '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: . * If a business is open 7 days a week, then it can be specified as .', - 'openingHoursSpecification' => 'The opening hours of a certain place.', - 'photo' => 'A photograph of this place.', - 'photos' => 'Photographs of this place.', - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', - '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', - 'review' => 'A review of the item.', - 'reviews' => 'Review of the item.', - '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.', - 'slogan' => 'A slogan or motto associated with the item.', - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', - 'subjectOf' => 'A CreativeWork or Event about this Thing.', - 'telephone' => 'The telephone number.', - '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.', - 'url' => 'URL of the item.' - ]; - } - - - /** - * @inheritdoc - */ - public function getGoogleRequiredSchema(): array - { - return ['description', 'name']; - } - - - /** - * @inheritdoc - */ - public function getGoogleRecommendedSchema(): array - { - return ['image', 'url']; - } - - - /** - * @inheritdoc - */ - public function defineRules(): array - { - $rules = parent::defineRules(); - $rules = array_merge($rules, [ - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] - ]); - - return $rules; - } + use ZooTrait; + use CivicStructureTrait; + use PlaceTrait; + use ThingTrait; + + /** + * The Schema.org Type Name + * + * @var string + */ + public static $schemaTypeName = 'Zoo'; + + /** + * The Schema.org Type Scope + * + * @var string + */ + public static $schemaTypeScope = 'https://schema.org/Zoo'; + + /** + * The Schema.org Type Extends + * + * @var string + */ + public static $schemaTypeExtends = 'CivicStructure'; + + /** + * The Schema.org Type Description + * + * @var string + */ + public static $schemaTypeDescription = 'A zoo.'; + + + /** + * @inheritdoc + */ + public function getSchemaPropertyNames(): array + { + return array_keys($this->getSchemaPropertyExpectedTypes()); + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyExpectedTypes(): array + { + return [ + 'additionalProperty' => ['PropertyValue'], + 'additionalType' => ['URL'], + 'address' => ['Text', 'PostalAddress'], + 'aggregateRating' => ['AggregateRating'], + 'alternateName' => ['Text'], + 'amenityFeature' => ['LocationFeatureSpecification'], + 'branchCode' => ['Text'], + 'containedIn' => ['Place'], + 'containedInPlace' => ['Place'], + 'containsPlace' => ['Place'], + 'description' => ['Text'], + 'disambiguatingDescription' => ['Text'], + 'event' => ['Event'], + 'events' => ['Event'], + 'faxNumber' => ['Text'], + 'geo' => ['GeoCoordinates', 'GeoShape'], + 'geoContains' => ['Place', 'GeospatialGeometry'], + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], + 'geoCovers' => ['GeospatialGeometry', 'Place'], + 'geoCrosses' => ['GeospatialGeometry', 'Place'], + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], + 'geoEquals' => ['GeospatialGeometry', 'Place'], + 'geoIntersects' => ['GeospatialGeometry', 'Place'], + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], + 'geoTouches' => ['GeospatialGeometry', 'Place'], + 'geoWithin' => ['GeospatialGeometry', 'Place'], + 'globalLocationNumber' => ['Text'], + 'hasDriveThroughService' => ['Boolean'], + 'hasMap' => ['URL', 'Map'], + 'identifier' => ['PropertyValue', 'URL', 'Text'], + 'image' => ['URL', 'ImageObject'], + 'isAccessibleForFree' => ['Boolean'], + 'isicV4' => ['Text'], + 'keywords' => ['URL', 'DefinedTerm', 'Text'], + 'latitude' => ['Number', 'Text'], + 'logo' => ['ImageObject', 'URL'], + 'longitude' => ['Text', 'Number'], + 'mainEntityOfPage' => ['URL', 'CreativeWork'], + 'map' => ['URL'], + 'maps' => ['URL'], + 'maximumAttendeeCapacity' => ['Integer'], + 'name' => ['Text'], + 'openingHours' => ['Text'], + 'openingHoursSpecification' => ['OpeningHoursSpecification'], + 'photo' => ['Photograph', 'ImageObject'], + 'photos' => ['ImageObject', 'Photograph'], + 'potentialAction' => ['Action'], + 'publicAccess' => ['Boolean'], + 'review' => ['Review'], + 'reviews' => ['Review'], + 'sameAs' => ['URL'], + 'slogan' => ['Text'], + 'smokingAllowed' => ['Boolean'], + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], + 'subjectOf' => ['Event', 'CreativeWork'], + 'telephone' => ['Text'], + 'tourBookingPage' => ['URL'], + 'url' => ['URL'], + ]; + } + + + /** + * @inheritdoc + */ + public function getSchemaPropertyDescriptions(): array + { + return [ + '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. ', + '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.', + 'address' => 'Physical address of the item.', + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', + 'alternateName' => 'An alias for the item.', + '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.', + '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. ', + 'containedIn' => 'The basic containment relation between a place and one that contains it.', + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', + 'description' => 'A description of the item.', + '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.', + 'event' => 'Upcoming or past event associated with this place, organization, or action.', + 'events' => 'Upcoming or past events associated with this place or organization.', + 'faxNumber' => 'The fax number.', + 'geo' => 'The geo coordinates of the place.', + '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).', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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).', + '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).', + '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).)', + '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).', + '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.', + '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.', + 'hasMap' => 'A URL to a map of the place.', + '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. ', + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', + '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.', + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + 'logo' => 'An associated logo.', + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', + '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.', + 'map' => 'A URL to a map of the place.', + 'maps' => 'A URL to a map of the place.', + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', + 'name' => 'The name of the item.', + '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: . * If a business is open 7 days a week, then it can be specified as .', + 'openingHoursSpecification' => 'The opening hours of a certain place.', + 'photo' => 'A photograph of this place.', + 'photos' => 'Photographs of this place.', + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', + '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', + 'review' => 'A review of the item.', + 'reviews' => 'Review of the item.', + '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.', + 'slogan' => 'A slogan or motto associated with the item.', + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', + 'subjectOf' => 'A CreativeWork or Event about this Thing.', + 'telephone' => 'The telephone number.', + '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.', + 'url' => 'URL of the item.', + ]; + } + + + /** + * @inheritdoc + */ + public function getGoogleRequiredSchema(): array + { + return ['description', 'name']; + } + + + /** + * @inheritdoc + */ + public function getGoogleRecommendedSchema(): array + { + return ['image', 'url']; + } + + + /** + * @inheritdoc + */ + public function defineRules(): array + { + $rules = parent::defineRules(); + $rules = array_merge($rules, [ + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'], + ]); + + return $rules; + } } diff --git a/src/models/metalink/AuthorLink.php b/src/models/metalink/AuthorLink.php index 61acd1ef6..39c38cc0f 100644 --- a/src/models/metalink/AuthorLink.php +++ b/src/models/metalink/AuthorLink.php @@ -11,11 +11,10 @@ namespace nystudio107\seomatic\models\metalink; -use nystudio107\seomatic\models\MetaLink; +use craft\helpers\StringHelper; use nystudio107\seomatic\helpers\UrlHelper; -use Craft; -use craft\helpers\StringHelper; +use nystudio107\seomatic\models\MetaLink; /** * @author nystudio107 diff --git a/src/models/metalink/HomeLink.php b/src/models/metalink/HomeLink.php index 031f3891c..9e2b62ee5 100644 --- a/src/models/metalink/HomeLink.php +++ b/src/models/metalink/HomeLink.php @@ -11,11 +11,11 @@ namespace nystudio107\seomatic\models\metalink; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\models\MetaLink; +use craft\helpers\StringHelper; use nystudio107\seomatic\helpers\UrlHelper; +use nystudio107\seomatic\models\MetaLink; -use craft\helpers\StringHelper; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 diff --git a/src/models/metatag/OgLocaleTag.php b/src/models/metatag/OgLocaleTag.php index 052bf7273..3a80873bc 100644 --- a/src/models/metatag/OgLocaleTag.php +++ b/src/models/metatag/OgLocaleTag.php @@ -11,8 +11,8 @@ namespace nystudio107\seomatic\models\metatag; -use nystudio107\seomatic\models\MetaTag; use nystudio107\seomatic\helpers\Localization as LocalizationHelper; +use nystudio107\seomatic\models\MetaTag; /** * @author nystudio107 diff --git a/src/models/metatag/OgTitleTag.php b/src/models/metatag/OgTitleTag.php index dac064e4f..a564424ea 100644 --- a/src/models/metatag/OgTitleTag.php +++ b/src/models/metatag/OgTitleTag.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\models\metatag; -use nystudio107\seomatic\Seomatic; use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; use nystudio107\seomatic\helpers\Text as TextHelper; use nystudio107\seomatic\models\MetaTag; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 @@ -125,7 +125,7 @@ public function prepForRender(&$data): bool $suffix = ''; break; } - $lengthAdjust = mb_strlen($prefix.$suffix); + $lengthAdjust = mb_strlen($prefix . $suffix); // Truncate the og:title tag content $truncLen = Seomatic::$settings->maxTitleLength - $lengthAdjust; if ($truncLen < 0) { @@ -138,7 +138,7 @@ public function prepForRender(&$data): bool '…' ); } - $data['content'] = $prefix.$data['content'].$suffix; + $data['content'] = $prefix . $data['content'] . $suffix; } return $shouldRender; diff --git a/src/models/metatag/TwitterTitleTag.php b/src/models/metatag/TwitterTitleTag.php index 544620240..0363d1eb1 100644 --- a/src/models/metatag/TwitterTitleTag.php +++ b/src/models/metatag/TwitterTitleTag.php @@ -11,10 +11,10 @@ namespace nystudio107\seomatic\models\metatag; -use nystudio107\seomatic\Seomatic; use nystudio107\seomatic\helpers\MetaValue as MetaValueHelper; use nystudio107\seomatic\helpers\Text as TextHelper; use nystudio107\seomatic\models\MetaTag; +use nystudio107\seomatic\Seomatic; /** * @author nystudio107 @@ -125,7 +125,7 @@ public function prepForRender(&$data): bool $suffix = ''; break; } - $lengthAdjust = mb_strlen($prefix.$suffix); + $lengthAdjust = mb_strlen($prefix . $suffix); // Truncate the twitter:title tag content $truncLen = Seomatic::$settings->maxTitleLength - $lengthAdjust; if ($truncLen < 0) { @@ -138,7 +138,7 @@ public function prepForRender(&$data): bool '…' ); } - $data['content'] = $prefix.$data['content'].$suffix; + $data['content'] = $prefix . $data['content'] . $suffix; } return $shouldRender; diff --git a/src/records/MetaBundle.php b/src/records/MetaBundle.php index d96c8970b..53ce3aa2a 100644 --- a/src/records/MetaBundle.php +++ b/src/records/MetaBundle.php @@ -38,7 +38,6 @@ public static function tableName(): string */ public function beforeSave($insert) { - $result = parent::beforeSave($insert); if (!Craft::$app->getDb()->getSupportsMb4()) { diff --git a/src/seoelements/SeoCampaign.php b/src/seoelements/SeoCampaign.php index 7038a9942..1ed5e9017 100644 --- a/src/seoelements/SeoCampaign.php +++ b/src/seoelements/SeoCampaign.php @@ -105,7 +105,7 @@ public static function installEventHandlers() Event::on( CampaignTypesService::class, CampaignTypesService::EVENT_AFTER_SAVE_CAMPAIGN_TYPE, - function (CampaignTypeEvent $event) { + function(CampaignTypeEvent $event) { Craft::debug( 'CampaignTypesService::EVENT_AFTER_SAVE_CAMPAIGN_TYPE', __METHOD__ @@ -116,7 +116,7 @@ function (CampaignTypeEvent $event) { Event::on( CampaignTypesService::class, CampaignTypesService::EVENT_AFTER_DELETE_CAMPAIGN_TYPE, - function (CampaignTypeEvent $event) { + function(CampaignTypeEvent $event) { Craft::debug( 'CampaignTypesService::EVENT_AFTER_DELETE_CAMPAIGN_TYPE', __METHOD__ @@ -131,7 +131,7 @@ function (CampaignTypeEvent $event) { Event::on( CampaignTypesService::class, CampaignTypesService::EVENT_AFTER_SAVE_CAMPAIGN_TYPE, - function (CampaignTypeEvent $event) { + function(CampaignTypeEvent $event) { Craft::debug( 'CampaignTypesService::EVENT_AFTER_SAVE_CAMPAIGN_TYPE', __METHOD__ @@ -154,7 +154,7 @@ function (CampaignTypeEvent $event) { Event::on( CampaignTypesService::class, CampaignTypesService::EVENT_AFTER_DELETE_CAMPAIGN_TYPE, - function (CampaignTypeEvent $event) { + function(CampaignTypeEvent $event) { Craft::debug( 'CampaignTypesService::EVENT_AFTER_DELETE_CAMPAIGN_TYPE', __METHOD__ @@ -184,7 +184,7 @@ function (CampaignTypeEvent $event) { Event::on( CampaignElement::class, CampaignElement::EVENT_DEFINE_SIDEBAR_HTML, - static function (DefineHtmlEvent $event) { + static function(DefineHtmlEvent $event) { Craft::debug( 'CampaignElement::EVENT_DEFINE_SIDEBAR_HTML', __METHOD__ @@ -242,8 +242,7 @@ public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, int $siteId - ) - { + ) { return CampaignElement::find() ->campaignType($metaBundle->sourceHandle) ->id($elementId) diff --git a/src/seoelements/SeoCategory.php b/src/seoelements/SeoCategory.php index c5e8aae77..abf73b8bf 100644 --- a/src/seoelements/SeoCategory.php +++ b/src/seoelements/SeoCategory.php @@ -11,25 +11,25 @@ namespace nystudio107\seomatic\seoelements; -use craft\gql\interfaces\elements\Category as CategoryInterface; -use nystudio107\seomatic\base\GqlSeoElementInterface; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\assetbundles\seomatic\SeomaticAsset; -use nystudio107\seomatic\base\SeoElementInterface; -use nystudio107\seomatic\helpers\ArrayHelper; -use nystudio107\seomatic\helpers\Config as ConfigHelper; -use nystudio107\seomatic\helpers\PluginTemplate; -use nystudio107\seomatic\models\MetaBundle; - use Craft; use craft\base\ElementInterface; use craft\base\Model; -use craft\elements\db\ElementQueryInterface; use craft\elements\Category; +use craft\elements\db\ElementQueryInterface; use craft\events\CategoryGroupEvent; +use craft\gql\interfaces\elements\Category as CategoryInterface; use craft\models\CategoryGroup; use craft\models\Site; + use craft\services\Categories; +use nystudio107\seomatic\assetbundles\seomatic\SeomaticAsset; +use nystudio107\seomatic\base\GqlSeoElementInterface; +use nystudio107\seomatic\base\SeoElementInterface; +use nystudio107\seomatic\helpers\ArrayHelper; +use nystudio107\seomatic\helpers\Config as ConfigHelper; +use nystudio107\seomatic\helpers\PluginTemplate; +use nystudio107\seomatic\models\MetaBundle; +use nystudio107\seomatic\Seomatic; use yii\base\Event; use yii\base\InvalidConfigException; @@ -41,7 +41,6 @@ */ class SeoCategory implements SeoElementInterface, GqlSeoElementInterface { - // Constants // ========================================================================= @@ -132,7 +131,7 @@ function(CategoryGroupEvent $event) { Event::on( Categories::class, Categories::EVENT_AFTER_SAVE_GROUP, - function (CategoryGroupEvent $event) { + function(CategoryGroupEvent $event) { Craft::debug( 'Categories::EVENT_AFTER_SAVE_GROUP', __METHOD__ @@ -155,7 +154,7 @@ function (CategoryGroupEvent $event) { Event::on( Categories::class, Categories::EVENT_AFTER_DELETE_GROUP, - function (CategoryGroupEvent $event) { + function(CategoryGroupEvent $event) { Craft::debug( 'Categories::EVENT_AFTER_DELETE_GROUP', __METHOD__ @@ -183,7 +182,7 @@ function (CategoryGroupEvent $event) { // Install only for non-console Control Panel requests if ($request->getIsCpRequest() && !$request->getIsConsoleRequest()) { // Category Groups sidebar - Seomatic::$view->hook('cp.categories.edit.details', function (&$context) { + Seomatic::$view->hook('cp.categories.edit.details', function(&$context) { $html = ''; Seomatic::$view->registerAssetBundle(SeomaticAsset::class); /** @var $category Category */ @@ -221,7 +220,7 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer ->limit($metaBundle->metaSitemapVars->sitemapLimit) ; if (!empty($metaBundle->metaSitemapVars->structureDepth)) { - $query->level($metaBundle->metaSitemapVars->structureDepth.'<='); + $query->level($metaBundle->metaSitemapVars->structureDepth . '<='); } return $query; diff --git a/src/seoelements/SeoDigitalProduct.php b/src/seoelements/SeoDigitalProduct.php index 174fb4e06..d87c88b0d 100644 --- a/src/seoelements/SeoDigitalProduct.php +++ b/src/seoelements/SeoDigitalProduct.php @@ -11,27 +11,27 @@ namespace nystudio107\seomatic\seoelements; -use nystudio107\seomatic\base\GqlSeoElementInterface; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\assetbundles\seomatic\SeomaticAsset; -use nystudio107\seomatic\base\SeoElementInterface; -use nystudio107\seomatic\helpers\ArrayHelper; -use nystudio107\seomatic\helpers\Config as ConfigHelper; -use nystudio107\seomatic\helpers\PluginTemplate; -use nystudio107\seomatic\models\MetaBundle; - use Craft; use craft\base\ElementInterface; use craft\base\Model; -use craft\elements\db\ElementQueryInterface; -use craft\models\Site; - -use craft\digitalproducts\Plugin as DigitalProductsPlugin; use craft\digitalproducts\elements\Product; -use craft\digitalproducts\gql\interfaces\elements\Product as DigitalProductInterface; use craft\digitalproducts\events\ProductTypeEvent; +use craft\digitalproducts\gql\interfaces\elements\Product as DigitalProductInterface; use craft\digitalproducts\models\ProductType; +use craft\digitalproducts\Plugin as DigitalProductsPlugin; + use craft\digitalproducts\services\ProductTypes; +use craft\elements\db\ElementQueryInterface; +use craft\models\Site; +use nystudio107\seomatic\assetbundles\seomatic\SeomaticAsset; +use nystudio107\seomatic\base\GqlSeoElementInterface; + +use nystudio107\seomatic\base\SeoElementInterface; +use nystudio107\seomatic\helpers\ArrayHelper; +use nystudio107\seomatic\helpers\Config as ConfigHelper; +use nystudio107\seomatic\helpers\PluginTemplate; +use nystudio107\seomatic\models\MetaBundle; +use nystudio107\seomatic\Seomatic; use yii\base\Event; @@ -122,7 +122,7 @@ function(ProductTypeEvent $event) { ProductTypes::class, ProductTypes::EVENT_AFTER_SAVE_PRODUCTTYPE, /** @var ProductTypeEvent $event */ - static function ($event) { + static function($event) { Craft::debug( 'ProductTypes::EVENT_AFTER_SAVE_PRODUCTTYPE', __METHOD__ @@ -178,7 +178,7 @@ function (ProductTypeEvent $event) { // Digital Product Types sidebar $digitalProducts = DigitalProductsPlugin::getInstance(); if ($digitalProducts !== null) { - Seomatic::$view->hook('cp.digital-products.product.edit.details', static function (&$context) { + Seomatic::$view->hook('cp.digital-products.product.edit.details', static function(&$context) { $html = ''; Seomatic::$view->registerAssetBundle(SeomaticAsset::class); /** @var $product Product */ diff --git a/src/seoelements/SeoEntry.php b/src/seoelements/SeoEntry.php index b9a081094..84bf61124 100644 --- a/src/seoelements/SeoEntry.php +++ b/src/seoelements/SeoEntry.php @@ -11,27 +11,27 @@ namespace nystudio107\seomatic\seoelements; -use craft\gql\interfaces\elements\Entry as EntryInterface; -use nystudio107\seomatic\base\GqlSeoElementInterface; -use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\assetbundles\seomatic\SeomaticAsset; -use nystudio107\seomatic\base\SeoElementInterface; -use nystudio107\seomatic\helpers\ArrayHelper; -use nystudio107\seomatic\helpers\Config as ConfigHelper; -use nystudio107\seomatic\helpers\PluginTemplate; -use nystudio107\seomatic\models\MetaBundle; - use Craft; use craft\base\ElementInterface; use craft\base\Model; use craft\elements\db\ElementQueryInterface; use craft\elements\Entry; use craft\events\SectionEvent; +use craft\gql\interfaces\elements\Entry as EntryInterface; use craft\models\EntryDraft; use craft\models\EntryVersion; + use craft\models\Section; use craft\models\Site; use craft\services\Sections; +use nystudio107\seomatic\assetbundles\seomatic\SeomaticAsset; +use nystudio107\seomatic\base\GqlSeoElementInterface; +use nystudio107\seomatic\base\SeoElementInterface; +use nystudio107\seomatic\helpers\ArrayHelper; +use nystudio107\seomatic\helpers\Config as ConfigHelper; +use nystudio107\seomatic\helpers\PluginTemplate; +use nystudio107\seomatic\models\MetaBundle; +use nystudio107\seomatic\Seomatic; use yii\base\Event; use yii\base\InvalidConfigException; @@ -135,7 +135,7 @@ function(SectionEvent $event) { Event::on( Sections::class, Sections::EVENT_AFTER_SAVE_SECTION, - function (SectionEvent $event) { + function(SectionEvent $event) { Craft::debug( 'Sections::EVENT_AFTER_SAVE_SECTION', __METHOD__ @@ -158,7 +158,7 @@ function (SectionEvent $event) { Event::on( Sections::class, Sections::EVENT_AFTER_DELETE_SECTION, - function (SectionEvent $event) { + function(SectionEvent $event) { Craft::debug( 'Sections::EVENT_AFTER_DELETE_SECTION', __METHOD__ @@ -186,7 +186,7 @@ function (SectionEvent $event) { // Install only for non-console Control Panel requests if ($request->getIsCpRequest() && !$request->getIsConsoleRequest()) { // Entries sidebar - Seomatic::$view->hook('cp.entries.edit.details', function (&$context) { + Seomatic::$view->hook('cp.entries.edit.details', function(&$context) { $html = ''; Seomatic::$view->registerAssetBundle(SeomaticAsset::class); /** @var $entry Entry */ @@ -225,7 +225,7 @@ public static function sitemapElementsQuery(MetaBundle $metaBundle): ElementQuer ; if ($metaBundle->sourceType === 'structure' && !empty($metaBundle->metaSitemapVars->structureDepth)) { - $query->level($metaBundle->metaSitemapVars->structureDepth.'<='); + $query->level($metaBundle->metaSitemapVars->structureDepth . '<='); } return $query; diff --git a/src/seoelements/SeoEvent.php b/src/seoelements/SeoEvent.php index 9a0da124f..75e989d93 100644 --- a/src/seoelements/SeoEvent.php +++ b/src/seoelements/SeoEvent.php @@ -84,7 +84,7 @@ public static function installEventHandlers() BaseEvent::on( CalendarsService::class, CalendarsService::EVENT_AFTER_SAVE, - function (SaveModelEvent $event) { + function(SaveModelEvent $event) { Craft::debug( 'CalendarsService::EVENT_AFTER_DELETE', __METHOD__ @@ -95,7 +95,7 @@ function (SaveModelEvent $event) { BaseEvent::on( CalendarsService::class, CalendarsService::EVENT_AFTER_DELETE, - function (DeleteModelEvent $event) { + function(DeleteModelEvent $event) { Craft::debug( 'CalendarsService::EVENT_AFTER_DELETE', __METHOD__ @@ -110,7 +110,7 @@ function (DeleteModelEvent $event) { BaseEvent::on( CalendarsService::class, CalendarsService::EVENT_AFTER_SAVE, - function (SaveModelEvent $event) { + function(SaveModelEvent $event) { Craft::debug( 'CalendarsService::EVENT_AFTER_SAVE', __METHOD__ @@ -135,7 +135,7 @@ function (SaveModelEvent $event) { BaseEvent::on( CalendarsService::class, CalendarsService::EVENT_AFTER_DELETE, - function (DeleteModelEvent $event) { + function(DeleteModelEvent $event) { Craft::debug( 'CalendarsService::EVENT_AFTER_DELETE', __METHOD__ @@ -165,7 +165,7 @@ function (DeleteModelEvent $event) { // Install only for non-console Control Panel requests if ($request->getIsCpRequest() && !$request->getIsConsoleRequest()) { // Events sidebar - Seomatic::$view->hook('cp.solspace.calendar.events.edit.details', function (&$context) { + Seomatic::$view->hook('cp.solspace.calendar.events.edit.details', function(&$context) { $html = ''; Seomatic::$view->registerAssetBundle(SeomaticAsset::class); /** @var Event $event */ @@ -185,7 +185,6 @@ function (DeleteModelEvent $event) { return $html; }); - } } @@ -258,8 +257,7 @@ public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, int $siteId - ) - { + ) { return Event::find() ->id($elementId) ->siteId($siteId) diff --git a/src/seoelements/SeoProduct.php b/src/seoelements/SeoProduct.php index 4bb869318..7193527f8 100644 --- a/src/seoelements/SeoProduct.php +++ b/src/seoelements/SeoProduct.php @@ -104,7 +104,7 @@ public static function installEventHandlers() Event::on( ProductTypes::class, ProductTypes::EVENT_AFTER_SAVE_PRODUCTTYPE, - function (ProductTypeEvent $event) { + function(ProductTypeEvent $event) { Craft::debug( 'ProductTypes::EVENT_AFTER_SAVE_PRODUCTTYPE', __METHOD__ @@ -119,7 +119,7 @@ function (ProductTypeEvent $event) { Event::on( ProductTypes::class, ProductTypes::EVENT_AFTER_SAVE_PRODUCTTYPE, - static function (ProductTypeEvent $event) { + static function(ProductTypeEvent $event) { Craft::debug( 'ProductTypes::EVENT_AFTER_SAVE_PRODUCTTYPE', __METHOD__ @@ -175,7 +175,7 @@ function (ProductTypeEvent $event) { // Commerce Product Types sidebar $commerce = CommercePlugin::getInstance(); if ($commerce !== null) { - Seomatic::$view->hook('cp.commerce.product.edit.details', static function (&$context) { + Seomatic::$view->hook('cp.commerce.product.edit.details', static function(&$context) { $html = ''; Seomatic::$view->registerAssetBundle(SeomaticAsset::class); /** @var $product Product */ @@ -230,8 +230,7 @@ public static function sitemapAltElement( MetaBundle $metaBundle, int $elementId, int $siteId - ) - { + ) { return Product::find() ->id($elementId) ->siteId($siteId) diff --git a/src/seomatic-config/campaignmeta/LinkContainer.php b/src/seomatic-config/campaignmeta/LinkContainer.php index 60e520755..2a2f42ec1 100644 --- a/src/seomatic-config/campaignmeta/LinkContainer.php +++ b/src/seomatic-config/campaignmeta/LinkContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\services\Link as LinkService; @@ -20,15 +19,15 @@ */ return [ - MetaLinkContainer::CONTAINER_TYPE.LinkService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Link Tags', - 'handle' => LinkService::GENERAL_HANDLE, - 'class' => (string)MetaLinkContainer::class, - 'include' => true, + MetaLinkContainer::CONTAINER_TYPE . LinkService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Link Tags', + 'handle' => LinkService::GENERAL_HANDLE, + 'class' => (string)MetaLinkContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/campaignmeta/ScriptContainer.php b/src/seomatic-config/campaignmeta/ScriptContainer.php index 4bfab3781..6184939ac 100644 --- a/src/seomatic-config/campaignmeta/ScriptContainer.php +++ b/src/seomatic-config/campaignmeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; @@ -20,15 +19,15 @@ */ return [ - MetaScriptContainer::CONTAINER_TYPE.ScriptService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Script Tags', - 'handle' => ScriptService::GENERAL_HANDLE, - 'class' => (string)MetaScriptContainer::class, - 'include' => true, + MetaScriptContainer::CONTAINER_TYPE . ScriptService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Script Tags', + 'handle' => ScriptService::GENERAL_HANDLE, + 'class' => (string)MetaScriptContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/campaignmeta/SitemapVars.php b/src/seomatic-config/campaignmeta/SitemapVars.php index 1525627be..9ad8b171b 100644 --- a/src/seomatic-config/campaignmeta/SitemapVars.php +++ b/src/seomatic-config/campaignmeta/SitemapVars.php @@ -16,14 +16,14 @@ */ return [ - 'sitemapUrls' => true, - 'sitemapAssets' => true, - 'sitemapFiles' => true, - 'sitemapAltLinks' => true, - 'sitemapChangeFreq' => 'weekly', - 'sitemapPriority' => 0.5, - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => true, + 'sitemapAssets' => true, + 'sitemapFiles' => true, + 'sitemapAltLinks' => true, + 'sitemapChangeFreq' => 'weekly', + 'sitemapPriority' => 0.5, + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ['property' => 'title', 'field' => 'title'], ['property' => 'caption', 'field' => ''], diff --git a/src/seomatic-config/campaignmeta/TagContainer.php b/src/seomatic-config/campaignmeta/TagContainer.php index 87af412e0..a476c7849 100644 --- a/src/seomatic-config/campaignmeta/TagContainer.php +++ b/src/seomatic-config/campaignmeta/TagContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\services\Tag as TagService; @@ -20,48 +19,48 @@ */ return [ - MetaTagContainer::CONTAINER_TYPE.TagService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'General Meta Tags', - 'handle' => TagService::GENERAL_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'General Meta Tags', + 'handle' => TagService::GENERAL_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::FACEBOOK_HANDLE => [ - 'name' => 'Facebook', - 'description' => 'Facebook OpenGraph Meta Tags', - 'handle' => TagService::FACEBOOK_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::FACEBOOK_HANDLE => [ + 'name' => 'Facebook', + 'description' => 'Facebook OpenGraph Meta Tags', + 'handle' => TagService::FACEBOOK_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::TWITTER_HANDLE => [ - 'name' => 'Twitter', - 'description' => 'Twitter Card Meta Tags', - 'handle' => TagService::TWITTER_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::TWITTER_HANDLE => [ + 'name' => 'Twitter', + 'description' => 'Twitter Card Meta Tags', + 'handle' => TagService::TWITTER_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::MISC_HANDLE => [ - 'name' => 'Miscellaneous', - 'description' => 'Miscellaneous Meta Tags', - 'handle' => TagService::MISC_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::MISC_HANDLE => [ + 'name' => 'Miscellaneous', + 'description' => 'Miscellaneous Meta Tags', + 'handle' => TagService::MISC_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/categorymeta/LinkContainer.php b/src/seomatic-config/categorymeta/LinkContainer.php index 60e520755..2a2f42ec1 100644 --- a/src/seomatic-config/categorymeta/LinkContainer.php +++ b/src/seomatic-config/categorymeta/LinkContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\services\Link as LinkService; @@ -20,15 +19,15 @@ */ return [ - MetaLinkContainer::CONTAINER_TYPE.LinkService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Link Tags', - 'handle' => LinkService::GENERAL_HANDLE, - 'class' => (string)MetaLinkContainer::class, - 'include' => true, + MetaLinkContainer::CONTAINER_TYPE . LinkService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Link Tags', + 'handle' => LinkService::GENERAL_HANDLE, + 'class' => (string)MetaLinkContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/categorymeta/ScriptContainer.php b/src/seomatic-config/categorymeta/ScriptContainer.php index 4bfab3781..6184939ac 100644 --- a/src/seomatic-config/categorymeta/ScriptContainer.php +++ b/src/seomatic-config/categorymeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; @@ -20,15 +19,15 @@ */ return [ - MetaScriptContainer::CONTAINER_TYPE.ScriptService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Script Tags', - 'handle' => ScriptService::GENERAL_HANDLE, - 'class' => (string)MetaScriptContainer::class, - 'include' => true, + MetaScriptContainer::CONTAINER_TYPE . ScriptService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Script Tags', + 'handle' => ScriptService::GENERAL_HANDLE, + 'class' => (string)MetaScriptContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/categorymeta/SitemapVars.php b/src/seomatic-config/categorymeta/SitemapVars.php index 1525627be..9ad8b171b 100644 --- a/src/seomatic-config/categorymeta/SitemapVars.php +++ b/src/seomatic-config/categorymeta/SitemapVars.php @@ -16,14 +16,14 @@ */ return [ - 'sitemapUrls' => true, - 'sitemapAssets' => true, - 'sitemapFiles' => true, - 'sitemapAltLinks' => true, - 'sitemapChangeFreq' => 'weekly', - 'sitemapPriority' => 0.5, - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => true, + 'sitemapAssets' => true, + 'sitemapFiles' => true, + 'sitemapAltLinks' => true, + 'sitemapChangeFreq' => 'weekly', + 'sitemapPriority' => 0.5, + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ['property' => 'title', 'field' => 'title'], ['property' => 'caption', 'field' => ''], diff --git a/src/seomatic-config/categorymeta/TagContainer.php b/src/seomatic-config/categorymeta/TagContainer.php index 87af412e0..a476c7849 100644 --- a/src/seomatic-config/categorymeta/TagContainer.php +++ b/src/seomatic-config/categorymeta/TagContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\services\Tag as TagService; @@ -20,48 +19,48 @@ */ return [ - MetaTagContainer::CONTAINER_TYPE.TagService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'General Meta Tags', - 'handle' => TagService::GENERAL_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'General Meta Tags', + 'handle' => TagService::GENERAL_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::FACEBOOK_HANDLE => [ - 'name' => 'Facebook', - 'description' => 'Facebook OpenGraph Meta Tags', - 'handle' => TagService::FACEBOOK_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::FACEBOOK_HANDLE => [ + 'name' => 'Facebook', + 'description' => 'Facebook OpenGraph Meta Tags', + 'handle' => TagService::FACEBOOK_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::TWITTER_HANDLE => [ - 'name' => 'Twitter', - 'description' => 'Twitter Card Meta Tags', - 'handle' => TagService::TWITTER_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::TWITTER_HANDLE => [ + 'name' => 'Twitter', + 'description' => 'Twitter Card Meta Tags', + 'handle' => TagService::TWITTER_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::MISC_HANDLE => [ - 'name' => 'Miscellaneous', - 'description' => 'Miscellaneous Meta Tags', - 'handle' => TagService::MISC_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::MISC_HANDLE => [ + 'name' => 'Miscellaneous', + 'description' => 'Miscellaneous Meta Tags', + 'handle' => TagService::MISC_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/digitalproductmeta/LinkContainer.php b/src/seomatic-config/digitalproductmeta/LinkContainer.php index 60e520755..2a2f42ec1 100644 --- a/src/seomatic-config/digitalproductmeta/LinkContainer.php +++ b/src/seomatic-config/digitalproductmeta/LinkContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\services\Link as LinkService; @@ -20,15 +19,15 @@ */ return [ - MetaLinkContainer::CONTAINER_TYPE.LinkService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Link Tags', - 'handle' => LinkService::GENERAL_HANDLE, - 'class' => (string)MetaLinkContainer::class, - 'include' => true, + MetaLinkContainer::CONTAINER_TYPE . LinkService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Link Tags', + 'handle' => LinkService::GENERAL_HANDLE, + 'class' => (string)MetaLinkContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/digitalproductmeta/ScriptContainer.php b/src/seomatic-config/digitalproductmeta/ScriptContainer.php index 4bfab3781..6184939ac 100644 --- a/src/seomatic-config/digitalproductmeta/ScriptContainer.php +++ b/src/seomatic-config/digitalproductmeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; @@ -20,15 +19,15 @@ */ return [ - MetaScriptContainer::CONTAINER_TYPE.ScriptService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Script Tags', - 'handle' => ScriptService::GENERAL_HANDLE, - 'class' => (string)MetaScriptContainer::class, - 'include' => true, + MetaScriptContainer::CONTAINER_TYPE . ScriptService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Script Tags', + 'handle' => ScriptService::GENERAL_HANDLE, + 'class' => (string)MetaScriptContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/digitalproductmeta/SitemapVars.php b/src/seomatic-config/digitalproductmeta/SitemapVars.php index 1525627be..9ad8b171b 100644 --- a/src/seomatic-config/digitalproductmeta/SitemapVars.php +++ b/src/seomatic-config/digitalproductmeta/SitemapVars.php @@ -16,14 +16,14 @@ */ return [ - 'sitemapUrls' => true, - 'sitemapAssets' => true, - 'sitemapFiles' => true, - 'sitemapAltLinks' => true, - 'sitemapChangeFreq' => 'weekly', - 'sitemapPriority' => 0.5, - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => true, + 'sitemapAssets' => true, + 'sitemapFiles' => true, + 'sitemapAltLinks' => true, + 'sitemapChangeFreq' => 'weekly', + 'sitemapPriority' => 0.5, + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ['property' => 'title', 'field' => 'title'], ['property' => 'caption', 'field' => ''], diff --git a/src/seomatic-config/digitalproductmeta/TagContainer.php b/src/seomatic-config/digitalproductmeta/TagContainer.php index 87af412e0..a476c7849 100644 --- a/src/seomatic-config/digitalproductmeta/TagContainer.php +++ b/src/seomatic-config/digitalproductmeta/TagContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\services\Tag as TagService; @@ -20,48 +19,48 @@ */ return [ - MetaTagContainer::CONTAINER_TYPE.TagService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'General Meta Tags', - 'handle' => TagService::GENERAL_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'General Meta Tags', + 'handle' => TagService::GENERAL_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::FACEBOOK_HANDLE => [ - 'name' => 'Facebook', - 'description' => 'Facebook OpenGraph Meta Tags', - 'handle' => TagService::FACEBOOK_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::FACEBOOK_HANDLE => [ + 'name' => 'Facebook', + 'description' => 'Facebook OpenGraph Meta Tags', + 'handle' => TagService::FACEBOOK_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::TWITTER_HANDLE => [ - 'name' => 'Twitter', - 'description' => 'Twitter Card Meta Tags', - 'handle' => TagService::TWITTER_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::TWITTER_HANDLE => [ + 'name' => 'Twitter', + 'description' => 'Twitter Card Meta Tags', + 'handle' => TagService::TWITTER_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::MISC_HANDLE => [ - 'name' => 'Miscellaneous', - 'description' => 'Miscellaneous Meta Tags', - 'handle' => TagService::MISC_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::MISC_HANDLE => [ + 'name' => 'Miscellaneous', + 'description' => 'Miscellaneous Meta Tags', + 'handle' => TagService::MISC_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/entrymeta/LinkContainer.php b/src/seomatic-config/entrymeta/LinkContainer.php index 60e520755..2a2f42ec1 100644 --- a/src/seomatic-config/entrymeta/LinkContainer.php +++ b/src/seomatic-config/entrymeta/LinkContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\services\Link as LinkService; @@ -20,15 +19,15 @@ */ return [ - MetaLinkContainer::CONTAINER_TYPE.LinkService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Link Tags', - 'handle' => LinkService::GENERAL_HANDLE, - 'class' => (string)MetaLinkContainer::class, - 'include' => true, + MetaLinkContainer::CONTAINER_TYPE . LinkService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Link Tags', + 'handle' => LinkService::GENERAL_HANDLE, + 'class' => (string)MetaLinkContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/entrymeta/ScriptContainer.php b/src/seomatic-config/entrymeta/ScriptContainer.php index 4bfab3781..6184939ac 100644 --- a/src/seomatic-config/entrymeta/ScriptContainer.php +++ b/src/seomatic-config/entrymeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; @@ -20,15 +19,15 @@ */ return [ - MetaScriptContainer::CONTAINER_TYPE.ScriptService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Script Tags', - 'handle' => ScriptService::GENERAL_HANDLE, - 'class' => (string)MetaScriptContainer::class, - 'include' => true, + MetaScriptContainer::CONTAINER_TYPE . ScriptService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Script Tags', + 'handle' => ScriptService::GENERAL_HANDLE, + 'class' => (string)MetaScriptContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/entrymeta/SitemapVars.php b/src/seomatic-config/entrymeta/SitemapVars.php index 1525627be..9ad8b171b 100644 --- a/src/seomatic-config/entrymeta/SitemapVars.php +++ b/src/seomatic-config/entrymeta/SitemapVars.php @@ -16,14 +16,14 @@ */ return [ - 'sitemapUrls' => true, - 'sitemapAssets' => true, - 'sitemapFiles' => true, - 'sitemapAltLinks' => true, - 'sitemapChangeFreq' => 'weekly', - 'sitemapPriority' => 0.5, - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => true, + 'sitemapAssets' => true, + 'sitemapFiles' => true, + 'sitemapAltLinks' => true, + 'sitemapChangeFreq' => 'weekly', + 'sitemapPriority' => 0.5, + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ['property' => 'title', 'field' => 'title'], ['property' => 'caption', 'field' => ''], diff --git a/src/seomatic-config/entrymeta/TagContainer.php b/src/seomatic-config/entrymeta/TagContainer.php index 87af412e0..a476c7849 100644 --- a/src/seomatic-config/entrymeta/TagContainer.php +++ b/src/seomatic-config/entrymeta/TagContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\services\Tag as TagService; @@ -20,48 +19,48 @@ */ return [ - MetaTagContainer::CONTAINER_TYPE.TagService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'General Meta Tags', - 'handle' => TagService::GENERAL_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'General Meta Tags', + 'handle' => TagService::GENERAL_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::FACEBOOK_HANDLE => [ - 'name' => 'Facebook', - 'description' => 'Facebook OpenGraph Meta Tags', - 'handle' => TagService::FACEBOOK_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::FACEBOOK_HANDLE => [ + 'name' => 'Facebook', + 'description' => 'Facebook OpenGraph Meta Tags', + 'handle' => TagService::FACEBOOK_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::TWITTER_HANDLE => [ - 'name' => 'Twitter', - 'description' => 'Twitter Card Meta Tags', - 'handle' => TagService::TWITTER_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::TWITTER_HANDLE => [ + 'name' => 'Twitter', + 'description' => 'Twitter Card Meta Tags', + 'handle' => TagService::TWITTER_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::MISC_HANDLE => [ - 'name' => 'Miscellaneous', - 'description' => 'Miscellaneous Meta Tags', - 'handle' => TagService::MISC_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::MISC_HANDLE => [ + 'name' => 'Miscellaneous', + 'description' => 'Miscellaneous Meta Tags', + 'handle' => TagService::MISC_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/eventmeta/LinkContainer.php b/src/seomatic-config/eventmeta/LinkContainer.php index ab216bc22..e0b427559 100644 --- a/src/seomatic-config/eventmeta/LinkContainer.php +++ b/src/seomatic-config/eventmeta/LinkContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2019 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\services\Link as LinkService; @@ -20,15 +19,15 @@ */ return [ - MetaLinkContainer::CONTAINER_TYPE.LinkService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Link Tags', - 'handle' => LinkService::GENERAL_HANDLE, - 'class' => (string)MetaLinkContainer::class, - 'include' => true, + MetaLinkContainer::CONTAINER_TYPE . LinkService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Link Tags', + 'handle' => LinkService::GENERAL_HANDLE, + 'class' => (string)MetaLinkContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/eventmeta/ScriptContainer.php b/src/seomatic-config/eventmeta/ScriptContainer.php index fda20b4b3..027512c2a 100644 --- a/src/seomatic-config/eventmeta/ScriptContainer.php +++ b/src/seomatic-config/eventmeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2019 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; @@ -20,15 +19,15 @@ */ return [ - MetaScriptContainer::CONTAINER_TYPE.ScriptService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Script Tags', - 'handle' => ScriptService::GENERAL_HANDLE, - 'class' => (string)MetaScriptContainer::class, - 'include' => true, + MetaScriptContainer::CONTAINER_TYPE . ScriptService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Script Tags', + 'handle' => ScriptService::GENERAL_HANDLE, + 'class' => (string)MetaScriptContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/eventmeta/SitemapVars.php b/src/seomatic-config/eventmeta/SitemapVars.php index 87bea12ae..60159d93f 100644 --- a/src/seomatic-config/eventmeta/SitemapVars.php +++ b/src/seomatic-config/eventmeta/SitemapVars.php @@ -16,14 +16,14 @@ */ return [ - 'sitemapUrls' => true, - 'sitemapAssets' => true, - 'sitemapFiles' => true, - 'sitemapAltLinks' => true, - 'sitemapChangeFreq' => 'weekly', - 'sitemapPriority' => 0.5, - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => true, + 'sitemapAssets' => true, + 'sitemapFiles' => true, + 'sitemapAltLinks' => true, + 'sitemapChangeFreq' => 'weekly', + 'sitemapPriority' => 0.5, + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ['property' => 'title', 'field' => 'title'], ['property' => 'caption', 'field' => ''], diff --git a/src/seomatic-config/eventmeta/TagContainer.php b/src/seomatic-config/eventmeta/TagContainer.php index 5934fe286..81a68b95b 100644 --- a/src/seomatic-config/eventmeta/TagContainer.php +++ b/src/seomatic-config/eventmeta/TagContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2019 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\services\Tag as TagService; @@ -20,48 +19,48 @@ */ return [ - MetaTagContainer::CONTAINER_TYPE.TagService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'General Meta Tags', - 'handle' => TagService::GENERAL_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'General Meta Tags', + 'handle' => TagService::GENERAL_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::FACEBOOK_HANDLE => [ - 'name' => 'Facebook', - 'description' => 'Facebook OpenGraph Meta Tags', - 'handle' => TagService::FACEBOOK_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::FACEBOOK_HANDLE => [ + 'name' => 'Facebook', + 'description' => 'Facebook OpenGraph Meta Tags', + 'handle' => TagService::FACEBOOK_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::TWITTER_HANDLE => [ - 'name' => 'Twitter', - 'description' => 'Twitter Card Meta Tags', - 'handle' => TagService::TWITTER_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::TWITTER_HANDLE => [ + 'name' => 'Twitter', + 'description' => 'Twitter Card Meta Tags', + 'handle' => TagService::TWITTER_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::MISC_HANDLE => [ - 'name' => 'Miscellaneous', - 'description' => 'Miscellaneous Meta Tags', - 'handle' => TagService::MISC_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::MISC_HANDLE => [ + 'name' => 'Miscellaneous', + 'description' => 'Miscellaneous Meta Tags', + 'handle' => TagService::MISC_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/fieldmeta/GlobalVars.php b/src/seomatic-config/fieldmeta/GlobalVars.php index f0155e064..f9fffbc71 100644 --- a/src/seomatic-config/fieldmeta/GlobalVars.php +++ b/src/seomatic-config/fieldmeta/GlobalVars.php @@ -17,33 +17,33 @@ return [ '*' => [ - 'mainEntityOfPage' => '', - 'seoTitle' => '', - 'siteNamePosition' => '', - 'seoDescription' => '', - 'seoKeywords' => '', - 'seoImage' => '', - 'seoImageWidth' => '', - 'seoImageHeight' => '', - 'seoImageDescription' => '', - 'canonicalUrl' => '', - 'robots' => '', - 'ogType' => '', - 'ogTitle' => '', - 'ogSiteNamePosition' => '', - 'ogDescription' => '', - 'ogImage' => '', - 'ogImageWidth' => '', - 'ogImageHeight' => '', - 'ogImageDescription' => '', - 'twitterCard' => '', - 'twitterCreator' => '', - 'twitterTitle' => '', + 'mainEntityOfPage' => '', + 'seoTitle' => '', + 'siteNamePosition' => '', + 'seoDescription' => '', + 'seoKeywords' => '', + 'seoImage' => '', + 'seoImageWidth' => '', + 'seoImageHeight' => '', + 'seoImageDescription' => '', + 'canonicalUrl' => '', + 'robots' => '', + 'ogType' => '', + 'ogTitle' => '', + 'ogSiteNamePosition' => '', + 'ogDescription' => '', + 'ogImage' => '', + 'ogImageWidth' => '', + 'ogImageHeight' => '', + 'ogImageDescription' => '', + 'twitterCard' => '', + 'twitterCreator' => '', + 'twitterTitle' => '', 'twitterSiteNamePosition' => '', - 'twitterDescription' => '', - 'twitterImage' => '', - 'twitterImageWidth' => '', - 'twitterImageHeight' => '', + 'twitterDescription' => '', + 'twitterImage' => '', + 'twitterImageWidth' => '', + 'twitterImageHeight' => '', 'twitterImageDescription' => '', ], ]; diff --git a/src/seomatic-config/fieldmeta/JsonLdContainer.php b/src/seomatic-config/fieldmeta/JsonLdContainer.php index 0b24ad452..7194ac189 100644 --- a/src/seomatic-config/fieldmeta/JsonLdContainer.php +++ b/src/seomatic-config/fieldmeta/JsonLdContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaJsonLdContainer; use nystudio107\seomatic\services\JsonLd as JsonLdService; @@ -20,15 +19,15 @@ */ return [ - MetaJsonLdContainer::CONTAINER_TYPE.JsonLdService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'JsonLd Tags', - 'handle' => JsonLdService::GENERAL_HANDLE, - 'class' => (string)MetaJsonLdContainer::class, - 'include' => true, + MetaJsonLdContainer::CONTAINER_TYPE . JsonLdService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'JsonLd Tags', + 'handle' => JsonLdService::GENERAL_HANDLE, + 'class' => (string)MetaJsonLdContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/fieldmeta/LinkContainer.php b/src/seomatic-config/fieldmeta/LinkContainer.php index 60e520755..2a2f42ec1 100644 --- a/src/seomatic-config/fieldmeta/LinkContainer.php +++ b/src/seomatic-config/fieldmeta/LinkContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\services\Link as LinkService; @@ -20,15 +19,15 @@ */ return [ - MetaLinkContainer::CONTAINER_TYPE.LinkService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Link Tags', - 'handle' => LinkService::GENERAL_HANDLE, - 'class' => (string)MetaLinkContainer::class, - 'include' => true, + MetaLinkContainer::CONTAINER_TYPE . LinkService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Link Tags', + 'handle' => LinkService::GENERAL_HANDLE, + 'class' => (string)MetaLinkContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/fieldmeta/ScriptContainer.php b/src/seomatic-config/fieldmeta/ScriptContainer.php index 4bfab3781..6184939ac 100644 --- a/src/seomatic-config/fieldmeta/ScriptContainer.php +++ b/src/seomatic-config/fieldmeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; @@ -20,15 +19,15 @@ */ return [ - MetaScriptContainer::CONTAINER_TYPE.ScriptService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Script Tags', - 'handle' => ScriptService::GENERAL_HANDLE, - 'class' => (string)MetaScriptContainer::class, - 'include' => true, + MetaScriptContainer::CONTAINER_TYPE . ScriptService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Script Tags', + 'handle' => ScriptService::GENERAL_HANDLE, + 'class' => (string)MetaScriptContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/fieldmeta/SitemapVars.php b/src/seomatic-config/fieldmeta/SitemapVars.php index 54183ec5a..c166f5c10 100644 --- a/src/seomatic-config/fieldmeta/SitemapVars.php +++ b/src/seomatic-config/fieldmeta/SitemapVars.php @@ -16,14 +16,14 @@ */ return [ - 'sitemapUrls' => null, - 'sitemapAssets' => null, - 'sitemapFiles' => null, - 'sitemapAltLinks' => null, - 'sitemapChangeFreq' => '', - 'sitemapPriority' => '', - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => null, + 'sitemapAssets' => null, + 'sitemapFiles' => null, + 'sitemapAltLinks' => null, + 'sitemapChangeFreq' => '', + 'sitemapPriority' => '', + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ], 'sitemapVideoFieldMap' => [ diff --git a/src/seomatic-config/fieldmeta/TagContainer.php b/src/seomatic-config/fieldmeta/TagContainer.php index 87af412e0..a476c7849 100644 --- a/src/seomatic-config/fieldmeta/TagContainer.php +++ b/src/seomatic-config/fieldmeta/TagContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\services\Tag as TagService; @@ -20,48 +19,48 @@ */ return [ - MetaTagContainer::CONTAINER_TYPE.TagService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'General Meta Tags', - 'handle' => TagService::GENERAL_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'General Meta Tags', + 'handle' => TagService::GENERAL_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::FACEBOOK_HANDLE => [ - 'name' => 'Facebook', - 'description' => 'Facebook OpenGraph Meta Tags', - 'handle' => TagService::FACEBOOK_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::FACEBOOK_HANDLE => [ + 'name' => 'Facebook', + 'description' => 'Facebook OpenGraph Meta Tags', + 'handle' => TagService::FACEBOOK_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::TWITTER_HANDLE => [ - 'name' => 'Twitter', - 'description' => 'Twitter Card Meta Tags', - 'handle' => TagService::TWITTER_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::TWITTER_HANDLE => [ + 'name' => 'Twitter', + 'description' => 'Twitter Card Meta Tags', + 'handle' => TagService::TWITTER_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::MISC_HANDLE => [ - 'name' => 'Miscellaneous', - 'description' => 'Miscellaneous Meta Tags', - 'handle' => TagService::MISC_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::MISC_HANDLE => [ + 'name' => 'Miscellaneous', + 'description' => 'Miscellaneous Meta Tags', + 'handle' => TagService::MISC_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/fieldmeta/TitleContainer.php b/src/seomatic-config/fieldmeta/TitleContainer.php index 5dd0650d9..c3e52bc33 100644 --- a/src/seomatic-config/fieldmeta/TitleContainer.php +++ b/src/seomatic-config/fieldmeta/TitleContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTitleContainer; use nystudio107\seomatic\services\Title as TitleService; @@ -20,15 +19,15 @@ */ return [ - MetaTitleContainer::CONTAINER_TYPE.TitleService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Meta Title Tag', - 'handle' => TitleService::GENERAL_HANDLE, - 'class' => (string)MetaTitleContainer::class, - 'include' => true, + MetaTitleContainer::CONTAINER_TYPE . TitleService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Meta Title Tag', + 'handle' => TitleService::GENERAL_HANDLE, + 'class' => (string)MetaTitleContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/globalmeta/Creator.php b/src/seomatic-config/globalmeta/Creator.php index e14592ca4..7f439a1b6 100644 --- a/src/seomatic-config/globalmeta/Creator.php +++ b/src/seomatic-config/globalmeta/Creator.php @@ -17,39 +17,39 @@ return [ '*' => [ - 'siteType' => 'Organization', - 'siteSubType' => 'LocalBusiness', - 'siteSpecificType' => '', - 'computedType' => 'Organization', - 'genericName' => '', - 'genericAlternateName' => '', - 'genericDescription' => '', - 'genericUrl' => '', - 'genericImage' => '', - 'genericImageWidth' => '', - 'genericImageHeight' => '', - 'genericImageIds' => [], - 'genericTelephone' => '', - 'genericEmail' => '', - 'genericStreetAddress' => '', - 'genericAddressLocality' => '', - 'genericAddressRegion' => '', - 'genericPostalCode' => '', - 'genericAddressCountry' => '', - 'genericGeoLatitude' => '', - 'genericGeoLongitude' => '', - 'personGender' => '', - 'personBirthPlace' => '', - 'organizationDuns' => '', - 'organizationFounder' => '', - 'organizationFoundingDate' => '', + 'siteType' => 'Organization', + 'siteSubType' => 'LocalBusiness', + 'siteSpecificType' => '', + 'computedType' => 'Organization', + 'genericName' => '', + 'genericAlternateName' => '', + 'genericDescription' => '', + 'genericUrl' => '', + 'genericImage' => '', + 'genericImageWidth' => '', + 'genericImageHeight' => '', + 'genericImageIds' => [], + 'genericTelephone' => '', + 'genericEmail' => '', + 'genericStreetAddress' => '', + 'genericAddressLocality' => '', + 'genericAddressRegion' => '', + 'genericPostalCode' => '', + 'genericAddressCountry' => '', + 'genericGeoLatitude' => '', + 'genericGeoLongitude' => '', + 'personGender' => '', + 'personBirthPlace' => '', + 'organizationDuns' => '', + 'organizationFounder' => '', + 'organizationFoundingDate' => '', 'organizationFoundingLocation' => '', - 'organizationContactPoints' => [], - 'corporationTickerSymbol' => '', - 'localBusinessPriceRange' => '', - 'localBusinessOpeningHours' => [], - 'restaurantServesCuisine' => '', - 'restaurantMenuUrl' => '', - 'restaurantReservationsUrl' => '', + 'organizationContactPoints' => [], + 'corporationTickerSymbol' => '', + 'localBusinessPriceRange' => '', + 'localBusinessOpeningHours' => [], + 'restaurantServesCuisine' => '', + 'restaurantMenuUrl' => '', + 'restaurantReservationsUrl' => '', ], ]; diff --git a/src/seomatic-config/globalmeta/Identity.php b/src/seomatic-config/globalmeta/Identity.php index e14592ca4..7f439a1b6 100644 --- a/src/seomatic-config/globalmeta/Identity.php +++ b/src/seomatic-config/globalmeta/Identity.php @@ -17,39 +17,39 @@ return [ '*' => [ - 'siteType' => 'Organization', - 'siteSubType' => 'LocalBusiness', - 'siteSpecificType' => '', - 'computedType' => 'Organization', - 'genericName' => '', - 'genericAlternateName' => '', - 'genericDescription' => '', - 'genericUrl' => '', - 'genericImage' => '', - 'genericImageWidth' => '', - 'genericImageHeight' => '', - 'genericImageIds' => [], - 'genericTelephone' => '', - 'genericEmail' => '', - 'genericStreetAddress' => '', - 'genericAddressLocality' => '', - 'genericAddressRegion' => '', - 'genericPostalCode' => '', - 'genericAddressCountry' => '', - 'genericGeoLatitude' => '', - 'genericGeoLongitude' => '', - 'personGender' => '', - 'personBirthPlace' => '', - 'organizationDuns' => '', - 'organizationFounder' => '', - 'organizationFoundingDate' => '', + 'siteType' => 'Organization', + 'siteSubType' => 'LocalBusiness', + 'siteSpecificType' => '', + 'computedType' => 'Organization', + 'genericName' => '', + 'genericAlternateName' => '', + 'genericDescription' => '', + 'genericUrl' => '', + 'genericImage' => '', + 'genericImageWidth' => '', + 'genericImageHeight' => '', + 'genericImageIds' => [], + 'genericTelephone' => '', + 'genericEmail' => '', + 'genericStreetAddress' => '', + 'genericAddressLocality' => '', + 'genericAddressRegion' => '', + 'genericPostalCode' => '', + 'genericAddressCountry' => '', + 'genericGeoLatitude' => '', + 'genericGeoLongitude' => '', + 'personGender' => '', + 'personBirthPlace' => '', + 'organizationDuns' => '', + 'organizationFounder' => '', + 'organizationFoundingDate' => '', 'organizationFoundingLocation' => '', - 'organizationContactPoints' => [], - 'corporationTickerSymbol' => '', - 'localBusinessPriceRange' => '', - 'localBusinessOpeningHours' => [], - 'restaurantServesCuisine' => '', - 'restaurantMenuUrl' => '', - 'restaurantReservationsUrl' => '', + 'organizationContactPoints' => [], + 'corporationTickerSymbol' => '', + 'localBusinessPriceRange' => '', + 'localBusinessOpeningHours' => [], + 'restaurantServesCuisine' => '', + 'restaurantMenuUrl' => '', + 'restaurantReservationsUrl' => '', ], ]; diff --git a/src/seomatic-config/globalmeta/ScriptContainer.php b/src/seomatic-config/globalmeta/ScriptContainer.php index e21444fac..31097ed16 100644 --- a/src/seomatic-config/globalmeta/ScriptContainer.php +++ b/src/seomatic-config/globalmeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; diff --git a/src/seomatic-config/globalmeta/SiteVars.php b/src/seomatic-config/globalmeta/SiteVars.php index 9d4ba411a..92dcf33ea 100644 --- a/src/seomatic-config/globalmeta/SiteVars.php +++ b/src/seomatic-config/globalmeta/SiteVars.php @@ -19,65 +19,65 @@ return [ '*' => [ - 'siteName' => '', - 'identity' => Config::getConfigFromFile('globalmeta/Identity'), - 'creator' => Config::getConfigFromFile('globalmeta/Creator'), - 'twitterHandle' => '', - 'facebookProfileId' => '', - 'facebookAppId' => '', - 'googleSiteVerification' => '', - 'bingSiteVerification' => '', + 'siteName' => '', + 'identity' => Config::getConfigFromFile('globalmeta/Identity'), + 'creator' => Config::getConfigFromFile('globalmeta/Creator'), + 'twitterHandle' => '', + 'facebookProfileId' => '', + 'facebookAppId' => '', + 'googleSiteVerification' => '', + 'bingSiteVerification' => '', 'pinterestSiteVerification' => '', - 'sameAsLinks' => [ - 'twitter' => [ + 'sameAsLinks' => [ + 'twitter' => [ 'siteName' => 'Twitter', - 'handle' => 'twitter', - 'url' => '', + 'handle' => 'twitter', + 'url' => '', ], - 'facebook' => [ + 'facebook' => [ 'siteName' => 'Facebook', - 'handle' => 'facebook', - 'url' => '', + 'handle' => 'facebook', + 'url' => '', ], - 'wikipedia' => [ + 'wikipedia' => [ 'siteName' => 'Wikipedia', - 'handle' => 'wikipedia', - 'url' => '', + 'handle' => 'wikipedia', + 'url' => '', ], - 'linkedin' => [ + 'linkedin' => [ 'siteName' => 'LinkedIn', - 'handle' => 'linkedin', - 'url' => '', + 'handle' => 'linkedin', + 'url' => '', ], 'googleplus' => [ 'siteName' => 'Google+', - 'handle' => 'googleplus', - 'url' => '', + 'handle' => 'googleplus', + 'url' => '', ], - 'youtube' => [ + 'youtube' => [ 'siteName' => 'YouTube', - 'handle' => 'youtube', - 'url' => '', + 'handle' => 'youtube', + 'url' => '', ], - 'instagram' => [ + 'instagram' => [ 'siteName' => 'Instagram', - 'handle' => 'instagram', - 'url' => '', + 'handle' => 'instagram', + 'url' => '', ], - 'pinterest' => [ + 'pinterest' => [ 'siteName' => 'Pinterest', - 'handle' => 'pinterest', - 'url' => '', + 'handle' => 'pinterest', + 'url' => '', ], - 'github' => [ + 'github' => [ 'siteName' => 'GitHub', - 'handle' => 'github', - 'url' => '', + 'handle' => 'github', + 'url' => '', ], - 'vimeo' => [ + 'vimeo' => [ 'siteName' => 'Vimeo', - 'handle' => 'vimeo', - 'url' => '', + 'handle' => 'vimeo', + 'url' => '', ], ], 'siteLinksSearchTarget' => '', diff --git a/src/seomatic-config/globalmeta/SitemapVars.php b/src/seomatic-config/globalmeta/SitemapVars.php index f1d55c6d0..d83fcf90d 100644 --- a/src/seomatic-config/globalmeta/SitemapVars.php +++ b/src/seomatic-config/globalmeta/SitemapVars.php @@ -17,14 +17,14 @@ return [ '*' => [ - 'sitemapUrls' => true, - 'sitemapAssets' => true, - 'sitemapFiles' => true, - 'sitemapAltLinks' => true, - 'sitemapChangeFreq' => 'weekly', - 'sitemapPriority' => 0.5, - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => true, + 'sitemapAssets' => true, + 'sitemapFiles' => true, + 'sitemapAltLinks' => true, + 'sitemapChangeFreq' => 'weekly', + 'sitemapPriority' => 0.5, + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ['property' => 'title', 'field' => 'title'], ['property' => 'caption', 'field' => ''], diff --git a/src/seomatic-config/productmeta/LinkContainer.php b/src/seomatic-config/productmeta/LinkContainer.php index 60e520755..2a2f42ec1 100644 --- a/src/seomatic-config/productmeta/LinkContainer.php +++ b/src/seomatic-config/productmeta/LinkContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaLinkContainer; use nystudio107\seomatic\services\Link as LinkService; @@ -20,15 +19,15 @@ */ return [ - MetaLinkContainer::CONTAINER_TYPE.LinkService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Link Tags', - 'handle' => LinkService::GENERAL_HANDLE, - 'class' => (string)MetaLinkContainer::class, - 'include' => true, + MetaLinkContainer::CONTAINER_TYPE . LinkService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Link Tags', + 'handle' => LinkService::GENERAL_HANDLE, + 'class' => (string)MetaLinkContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/productmeta/ScriptContainer.php b/src/seomatic-config/productmeta/ScriptContainer.php index 4bfab3781..6184939ac 100644 --- a/src/seomatic-config/productmeta/ScriptContainer.php +++ b/src/seomatic-config/productmeta/ScriptContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaScriptContainer; use nystudio107\seomatic\services\Script as ScriptService; @@ -20,15 +19,15 @@ */ return [ - MetaScriptContainer::CONTAINER_TYPE.ScriptService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'Script Tags', - 'handle' => ScriptService::GENERAL_HANDLE, - 'class' => (string)MetaScriptContainer::class, - 'include' => true, + MetaScriptContainer::CONTAINER_TYPE . ScriptService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'Script Tags', + 'handle' => ScriptService::GENERAL_HANDLE, + 'class' => (string)MetaScriptContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/seomatic-config/productmeta/SitemapVars.php b/src/seomatic-config/productmeta/SitemapVars.php index 1525627be..9ad8b171b 100644 --- a/src/seomatic-config/productmeta/SitemapVars.php +++ b/src/seomatic-config/productmeta/SitemapVars.php @@ -16,14 +16,14 @@ */ return [ - 'sitemapUrls' => true, - 'sitemapAssets' => true, - 'sitemapFiles' => true, - 'sitemapAltLinks' => true, - 'sitemapChangeFreq' => 'weekly', - 'sitemapPriority' => 0.5, - 'sitemapLimit' => null, - 'structureDepth' => null, + 'sitemapUrls' => true, + 'sitemapAssets' => true, + 'sitemapFiles' => true, + 'sitemapAltLinks' => true, + 'sitemapChangeFreq' => 'weekly', + 'sitemapPriority' => 0.5, + 'sitemapLimit' => null, + 'structureDepth' => null, 'sitemapImageFieldMap' => [ ['property' => 'title', 'field' => 'title'], ['property' => 'caption', 'field' => ''], diff --git a/src/seomatic-config/productmeta/TagContainer.php b/src/seomatic-config/productmeta/TagContainer.php index 87af412e0..a476c7849 100644 --- a/src/seomatic-config/productmeta/TagContainer.php +++ b/src/seomatic-config/productmeta/TagContainer.php @@ -9,7 +9,6 @@ * @copyright Copyright (c) 2017 nystudio107 */ -use nystudio107\seomatic\helpers\Dependency; use nystudio107\seomatic\models\MetaTagContainer; use nystudio107\seomatic\services\Tag as TagService; @@ -20,48 +19,48 @@ */ return [ - MetaTagContainer::CONTAINER_TYPE.TagService::GENERAL_HANDLE => [ - 'name' => 'General', - 'description' => 'General Meta Tags', - 'handle' => TagService::GENERAL_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::GENERAL_HANDLE => [ + 'name' => 'General', + 'description' => 'General Meta Tags', + 'handle' => TagService::GENERAL_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::FACEBOOK_HANDLE => [ - 'name' => 'Facebook', - 'description' => 'Facebook OpenGraph Meta Tags', - 'handle' => TagService::FACEBOOK_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::FACEBOOK_HANDLE => [ + 'name' => 'Facebook', + 'description' => 'Facebook OpenGraph Meta Tags', + 'handle' => TagService::FACEBOOK_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::TWITTER_HANDLE => [ - 'name' => 'Twitter', - 'description' => 'Twitter Card Meta Tags', - 'handle' => TagService::TWITTER_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::TWITTER_HANDLE => [ + 'name' => 'Twitter', + 'description' => 'Twitter Card Meta Tags', + 'handle' => TagService::TWITTER_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], - MetaTagContainer::CONTAINER_TYPE.TagService::MISC_HANDLE => [ - 'name' => 'Miscellaneous', - 'description' => 'Miscellaneous Meta Tags', - 'handle' => TagService::MISC_HANDLE, - 'class' => (string)MetaTagContainer::class, - 'include' => true, + MetaTagContainer::CONTAINER_TYPE . TagService::MISC_HANDLE => [ + 'name' => 'Miscellaneous', + 'description' => 'Miscellaneous Meta Tags', + 'handle' => TagService::MISC_HANDLE, + 'class' => (string)MetaTagContainer::class, + 'include' => true, 'dependencies' => [ ], - 'data' => [ + 'data' => [ ], ], ]; diff --git a/src/services/FrontendTemplates.php b/src/services/FrontendTemplates.php index 753c4777e..25971bf9d 100644 --- a/src/services/FrontendTemplates.php +++ b/src/services/FrontendTemplates.php @@ -116,7 +116,7 @@ public function loadFrontendTemplateContainers(int $siteId = null) Event::on( UrlManager::class, UrlManager::EVENT_REGISTER_SITE_URL_RULES, - function (RegisterUrlRulesEvent $event) { + function(RegisterUrlRulesEvent $event) { Craft::debug( 'UrlManager::EVENT_REGISTER_SITE_URL_RULES', __METHOD__ @@ -178,7 +178,7 @@ public function renderTemplate(string $template, array $params = []): string $cache = Craft::$app->getCache(); $html = $cache->getOrSet( self::CACHE_KEY . $template . $siteId, - function () use ($template, $params) { + function() use ($template, $params) { Craft::info( 'Frontend template cache miss: ' . $template, __METHOD__ diff --git a/src/services/Helper.php b/src/services/Helper.php index 23778c581..44fa696f8 100644 --- a/src/services/Helper.php +++ b/src/services/Helper.php @@ -477,8 +477,7 @@ public function socialTransformWidth( $transformName = '', $siteId = null, $transformMode = null - ): string - { + ): string { return ImageTransformHelper::socialTransformWidth($asset, $transformName, $siteId, $transformMode); } @@ -498,8 +497,7 @@ public function socialTransformHeight( $transformName = '', $siteId = null, $transformMode = null - ): string - { + ): string { return ImageTransformHelper::socialTransformHeight($asset, $transformName, $siteId, $transformMode); } diff --git a/src/services/MetaBundles.php b/src/services/MetaBundles.php index 65b5432bf..e345fa549 100644 --- a/src/services/MetaBundles.php +++ b/src/services/MetaBundles.php @@ -402,8 +402,7 @@ public function createMetaBundleFromSeoElement( $sourceModel, int $sourceSiteId, $baseConfig = null - ) - { + ) { $metaBundle = null; // Get the site settings and turn them into arrays /** @var Section|CategoryGroup|ProductType $sourceModel */ @@ -811,7 +810,6 @@ public function getContentMetaBundlesForSiteId($sourceSiteId, $filter = ''): arr // Since sectionIds, CategoryIds, etc. are not unique, we need to do separate queries and combine them $seoElements = Seomatic::$plugin->seoElements->getAllSeoElementTypes(); foreach ($seoElements as $seoElement) { - $subQuery = (new Query()) ->from(['{{%seomatic_metabundles}}']) ->where(['=', 'sourceBundleType', $seoElement::META_BUNDLE_TYPE]); @@ -828,7 +826,7 @@ public function getContentMetaBundlesForSiteId($sourceSiteId, $filter = ''): arr ->leftJoin(['mb2' => $subQuery], [ 'and', '[[mb.sourceId]] = [[mb2.sourceId]]', - '[[mb.id]] < [[mb2.id]]' + '[[mb.id]] < [[mb2.id]]', ]) ->where(['mb2.id' => null]); $bundles = array_merge($bundles, $bundleQuery->all()); @@ -896,7 +894,7 @@ public function pruneFieldMetaBundleSettings(MetaBundle $metaBundle, string $fie $emptyValues = array_merge($emptyValues, array_fill_keys($inherited, '')); foreach ($inherited as $inheritedAttribute) { foreach (self::COMPOSITE_INHERITANCE_CHILDREN[$inheritedAttribute] ?? [] as $child) { - list ($model, $attribute) = explode('.', $child); + list($model, $attribute) = explode('.', $child); $metaBundle->{$model}->$attribute = ''; } } diff --git a/src/services/MetaContainers.php b/src/services/MetaContainers.php index 3a6f1d5a8..e50871a63 100644 --- a/src/services/MetaContainers.php +++ b/src/services/MetaContainers.php @@ -254,7 +254,7 @@ public function parseGlobalVars() $uniqueKey = $dependency->tags[3] ?? self::GLOBALS_CACHE_KEY; list($this->metaGlobalVars, $this->metaSiteVars) = Craft::$app->getCache()->getOrSet( self::GLOBALS_CACHE_KEY . $uniqueKey, - function () use ($uniqueKey) { + function() use ($uniqueKey) { Craft::info( self::GLOBALS_CACHE_KEY . ' cache miss: ' . $uniqueKey, __METHOD__ @@ -289,8 +289,7 @@ public function previewMetaContainers( int $siteId = null, bool $parseVariables = false, bool $includeElement = true - ) - { + ) { // If we've already previewed the containers for this request, there's no need to do it again if (Seomatic::$previewingMetaContainers && !Seomatic::$headlessRequest) { return; @@ -425,7 +424,7 @@ public function loadMetaContainers(string $uri = '', int $siteId = null) $cache = Craft::$app->getCache(); list($this->metaGlobalVars, $this->metaSiteVars, $this->metaSitemapVars, $this->metaContainers) = $cache->getOrSet( self::CACHE_KEY . $cacheKey, - function () use ($uri, $siteId) { + function() use ($uri, $siteId) { Craft::info( 'Meta container cache miss: ' . $uri . '/' . $siteId, __METHOD__ @@ -715,8 +714,8 @@ protected function loadFieldMetaContainers() $parentBundle = Seomatic::$plugin->metaBundles->getContentMetaBundleForElement($element); foreach ($rules as $settingPath => $action) { - list ($container, $property) = explode('.', $settingPath); - list ($testValue, $sourceSetting) = explode('.', $action); + list($container, $property) = explode('.', $settingPath); + list($testValue, $sourceSetting) = explode('.', $action); $bundleProp = $parentBundle->{$container}->{$property} ?? null; if ($bundleProp == $testValue) { diff --git a/src/services/ServicesTrait.php b/src/services/ServicesTrait.php index 1bb1fcd62..8eee4a6e3 100644 --- a/src/services/ServicesTrait.php +++ b/src/services/ServicesTrait.php @@ -85,7 +85,7 @@ public function __construct($id, $parent = null, array $config = []) 'errorEntry' => 'src/js/seomatic.js', 'useDevServer' => true, ], - ] + ], ], $config); parent::__construct($id, $parent, $config); diff --git a/src/services/Sitemaps.php b/src/services/Sitemaps.php index 505ead09c..ef71a95f3 100644 --- a/src/services/Sitemaps.php +++ b/src/services/Sitemaps.php @@ -90,7 +90,7 @@ public function loadSitemapContainers() Event::on( UrlManager::class, UrlManager::EVENT_REGISTER_SITE_URL_RULES, - function (RegisterUrlRulesEvent $event) { + function(RegisterUrlRulesEvent $event) { Craft::debug( 'UrlManager::EVENT_REGISTER_SITE_URL_RULES', __METHOD__ diff --git a/src/translations/en/seomatic.php b/src/translations/en/seomatic.php index bfb67fb6c..48c8c01e7 100644 --- a/src/translations/en/seomatic.php +++ b/src/translations/en/seomatic.php @@ -512,5 +512,5 @@ 'X (Twitter) username for the website used in the card footer, without the preceding @.' => 'X (Twitter) username for the website used in the card footer, without the preceding @.', 'Universal Analytics (which is used on this site via the SEOmatic plugin) is being [discontinued on July 1st, 2023]({url}). You should use Google gtag.js or Google Tag Manager instead and transition to a new GA4 property.' => 'Universal Analytics (which is used on this site via the SEOmatic plugin) is being [discontinued on July 1st, 2023]({url}). You should use Google gtag.js or Google Tag Manager instead and transition to a new GA4 property.', 'Google Universal Analytics deprecated' => 'Google Universal Analytics deprecated', - 'Universal Analytics (which is used on this site) is being [discontinued on July 1st, 2023]({url}). You should use Google gtag.js or Google Tag Manager instead and transition to a new GA4 property..' => 'Universal Analytics (which is used on this site) is being [discontinued on July 1st, 2023]({url}). You should use Google gtag.js or Google Tag Manager instead and transition to a new GA4 property..' + 'Universal Analytics (which is used on this site) is being [discontinued on July 1st, 2023]({url}). You should use Google gtag.js or Google Tag Manager instead and transition to a new GA4 property..' => 'Universal Analytics (which is used on this site) is being [discontinued on July 1st, 2023]({url}). You should use Google gtag.js or Google Tag Manager instead and transition to a new GA4 property..', ]; diff --git a/src/twigextensions/SeomaticTwigExtension.php b/src/twigextensions/SeomaticTwigExtension.php index 9cc963c91..8f28514e5 100644 --- a/src/twigextensions/SeomaticTwigExtension.php +++ b/src/twigextensions/SeomaticTwigExtension.php @@ -11,11 +11,11 @@ namespace nystudio107\seomatic\twigextensions; +use Craft; use nystudio107\seomatic\Node\Expression\EmptyCoalesceExpression; use nystudio107\seomatic\Seomatic; -use nystudio107\seomatic\variables\SeomaticVariable; -use Craft; +use nystudio107\seomatic\variables\SeomaticVariable; use Twig\ExpressionParser; use Twig\Extension\AbstractExtension; @@ -106,10 +106,9 @@ public function getOperators(): array '???' => [ 'precedence' => 300, 'class' => EmptyCoalesceExpression::class, - 'associativity' => ExpressionParser::OPERATOR_RIGHT + 'associativity' => ExpressionParser::OPERATOR_RIGHT, ], ], ]; } - } diff --git a/src/validators/EmbeddedModelValidator.php b/src/validators/EmbeddedModelValidator.php index 4a097b8ec..31731b9b7 100644 --- a/src/validators/EmbeddedModelValidator.php +++ b/src/validators/EmbeddedModelValidator.php @@ -44,7 +44,7 @@ public function validateAttribute($model, $attribute) $model->addError( $attribute, Craft::t('seomatic', 'Object failed to validate') - .'-'.$attributeError.' - '.$valueError + . '-' . $attributeError . ' - ' . $valueError ); } }